Skip to content

Commit 36d0272

Browse files
committed
Auto merge of #3065 - Forestryks:master, r=JohnTitor
linux: add pthread barriers This PR adds pthread barrier bindings for all supported linux platforms
2 parents 216a428 + 4625f47 commit 36d0272

File tree

23 files changed

+137
-0
lines changed

23 files changed

+137
-0
lines changed

libc-test/semver/linux.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2858,6 +2858,8 @@ __SIZEOF_PTHREAD_MUTEXATTR_T
28582858
__SIZEOF_PTHREAD_MUTEX_T
28592859
__SIZEOF_PTHREAD_RWLOCKATTR_T
28602860
__SIZEOF_PTHREAD_RWLOCK_T
2861+
__SIZEOF_PTHREAD_BARRIERATTR_T
2862+
__SIZEOF_PTHREAD_BARRIER_T
28612863
__WALL
28622864
__WCLONE
28632865
__WNOTHREAD
@@ -3176,6 +3178,15 @@ pthread_spin_lock
31763178
pthread_spin_trylock
31773179
pthread_spin_unlock
31783180
pthread_spinlock_t
3181+
pthread_barrierattr_init
3182+
pthread_barrierattr_setpshared
3183+
pthread_barrierattr_getpshared
3184+
pthread_barrierattr_destroy
3185+
pthread_barrier_init
3186+
pthread_barrier_wait
3187+
pthread_barrier_destroy
3188+
pthread_barrierattr_t
3189+
pthread_barrier_t
31793190
ptrace
31803191
ptsname_r
31813192
pwrite64

src/unix/linux_like/linux/align.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ macro_rules! expand_align {
4444
size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T],
4545
}
4646

47+
#[repr(align(4))]
48+
pub struct pthread_barrierattr_t {
49+
#[doc(hidden)]
50+
size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T],
51+
}
52+
4753
#[repr(align(8))]
4854
pub struct fanotify_event_metadata {
4955
pub event_len: __u32,
@@ -123,6 +129,30 @@ macro_rules! expand_align {
123129
size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T],
124130
}
125131

132+
#[cfg_attr(all(target_pointer_width = "32",
133+
any(target_arch = "mips",
134+
target_arch = "arm",
135+
target_arch = "hexagon",
136+
target_arch = "m68k",
137+
target_arch = "powerpc",
138+
target_arch = "sparc",
139+
target_arch = "x86_64",
140+
target_arch = "x86")),
141+
repr(align(4)))]
142+
#[cfg_attr(any(target_pointer_width = "64",
143+
not(any(target_arch = "mips",
144+
target_arch = "arm",
145+
target_arch = "hexagon",
146+
target_arch = "m68k",
147+
target_arch = "powerpc",
148+
target_arch = "sparc",
149+
target_arch = "x86_64",
150+
target_arch = "x86"))),
151+
repr(align(8)))]
152+
pub struct pthread_barrier_t {
153+
size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T],
154+
}
155+
126156
// linux/can.h
127157
#[repr(align(8))]
128158
#[allow(missing_debug_implementations)]

src/unix/linux_like/linux/gnu/b32/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,10 @@ pub const F_OFD_SETLKW: ::c_int = 38;
163163
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
164164
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24;
165165
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32;
166+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20;
166167
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
167168
pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8;
169+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
168170

169171
cfg_if! {
170172
if #[cfg(target_arch = "sparc")] {

src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,7 @@ pub const TCSAFLUSH: ::c_int = 2;
335335

336336
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
337337
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
338+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
338339
pub const O_DIRECT: ::c_int = 16384;
339340
pub const O_DIRECTORY: ::c_int = 65536;
340341
pub const O_NOFOLLOW: ::c_int = 131072;
@@ -452,6 +453,7 @@ pub const FLUSHO: ::tcflag_t = 4096;
452453
pub const EXTPROC: ::tcflag_t = 65536;
453454
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
454455
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
456+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
455457
pub const NGREG: usize = 32;
456458
pub const REG_PC: usize = 0;
457459
pub const REG_RA: usize = 1;

src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
77
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32;
88
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
99
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 48;
10+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
11+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20;
1012

1113
align_const! {
1214
#[cfg(target_endian = "little")]

src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 8;
77
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 48;
88
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 8;
99
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
10+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 8;
11+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
1012

1113
align_const! {
1214
#[cfg(target_endian = "little")]

src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,10 @@ s! {
193193

194194
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
195195
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
196+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
196197
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
197198
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
199+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
198200

199201
align_const! {
200202
#[cfg(target_endian = "little")]

src/unix/linux_like/linux/gnu/b64/mips64/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,10 @@ s! {
188188

189189
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
190190
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
191+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
191192
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
192193
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
194+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
193195

194196
align_const! {
195197
#[cfg(target_endian = "little")]

src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ pub const RTLD_GLOBAL: ::c_int = 0x100;
201201
pub const RTLD_NOLOAD: ::c_int = 0x4;
202202
pub const VEOF: usize = 4;
203203
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
204+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
204205

205206
pub const O_APPEND: ::c_int = 1024;
206207
pub const O_CREAT: ::c_int = 64;
@@ -402,6 +403,7 @@ pub const EFD_CLOEXEC: ::c_int = 0x80000;
402403
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
403404
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
404405
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
406+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
405407

406408
align_const! {
407409
#[cfg(target_endian = "little")]

src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,7 @@ pub const EPOLL_CLOEXEC: ::c_int = 524288;
368368
pub const EFD_CLOEXEC: ::c_int = 524288;
369369
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
370370
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
371+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
371372
pub const O_DIRECT: ::c_int = 16384;
372373
pub const O_DIRECTORY: ::c_int = 65536;
373374
pub const O_NOFOLLOW: ::c_int = 131072;
@@ -491,6 +492,7 @@ pub const FLUSHO: ::tcflag_t = 4096;
491492
pub const EXTPROC: ::tcflag_t = 65536;
492493
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
493494
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
495+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
494496
pub const NGREG: usize = 32;
495497
pub const REG_PC: usize = 0;
496498
pub const REG_RA: usize = 1;

src/unix/linux_like/linux/gnu/b64/s390x.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,10 @@ pub const EFD_CLOEXEC: ::c_int = 0x80000;
289289

290290
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
291291
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
292+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
292293
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
293294
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
295+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
294296

295297
align_const! {
296298
pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =

src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ pub const RTLD_DEEPBIND: ::c_int = 0x8;
204204
pub const RTLD_GLOBAL: ::c_int = 0x100;
205205
pub const RTLD_NOLOAD: ::c_int = 0x4;
206206
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
207+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
207208

208209
pub const O_APPEND: ::c_int = 0x8;
209210
pub const O_CREAT: ::c_int = 0x200;
@@ -401,6 +402,7 @@ pub const EFD_CLOEXEC: ::c_int = 0x400000;
401402
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
402403
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
403404
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
405+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
404406

405407
align_const! {
406408
pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =

src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,7 @@ pub const EFD_CLOEXEC: ::c_int = 0x80000;
600600

601601
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
602602
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
603+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
603604

604605
pub const O_DIRECT: ::c_int = 0x4000;
605606
pub const O_DIRECTORY: ::c_int = 0x10000;

src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ s! {
2222

2323
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
2424
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
25+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
2526

2627
align_const! {
2728
#[cfg(target_endian = "little")]

src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ s! {
2222

2323
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32;
2424
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 44;
25+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20;
2526

2627
align_const! {
2728
pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =

src/unix/linux_like/linux/mod.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -938,6 +938,28 @@ cfg_if! {
938938
}
939939
}
940940

941+
impl PartialEq for pthread_barrier_t {
942+
fn eq(&self, other: &pthread_barrier_t) -> bool {
943+
self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b)
944+
}
945+
}
946+
947+
impl Eq for pthread_barrier_t {}
948+
949+
impl ::fmt::Debug for pthread_barrier_t {
950+
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
951+
f.debug_struct("pthread_barrier_t")
952+
.field("size", &self.size)
953+
.finish()
954+
}
955+
}
956+
957+
impl ::hash::Hash for pthread_barrier_t {
958+
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
959+
self.size.hash(state);
960+
}
961+
}
962+
941963
impl PartialEq for sockaddr_alg {
942964
fn eq(&self, other: &sockaddr_alg) -> bool {
943965
self.salg_family == other.salg_family
@@ -4169,6 +4191,23 @@ extern "C" {
41694191
lock: *mut pthread_mutex_t,
41704192
abstime: *const ::timespec,
41714193
) -> ::c_int;
4194+
pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int;
4195+
pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int;
4196+
pub fn pthread_barrierattr_getpshared(
4197+
attr: *const ::pthread_barrierattr_t,
4198+
shared: *mut ::c_int,
4199+
) -> ::c_int;
4200+
pub fn pthread_barrierattr_setpshared(
4201+
attr: *mut ::pthread_barrierattr_t,
4202+
shared: ::c_int,
4203+
) -> ::c_int;
4204+
pub fn pthread_barrier_init(
4205+
barrier: *mut pthread_barrier_t,
4206+
attr: *const ::pthread_barrierattr_t,
4207+
count: ::c_uint,
4208+
) -> ::c_int;
4209+
pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int;
4210+
pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int;
41724211
pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int;
41734212
pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int;
41744213
pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int;

src/unix/linux_like/linux/musl/b32/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ s! {
3838

3939
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32;
4040
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24;
41+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20;
4142

4243
cfg_if! {
4344
if #[cfg(any(target_arch = "x86"))] {

src/unix/linux_like/linux/musl/b32/riscv32/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ pub const TIOCM_DSR: ::c_int = 256;
366366

367367
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
368368
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
369+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
369370
pub const O_DIRECT: ::c_int = 16384;
370371
pub const O_DIRECTORY: ::c_int = 65536;
371372
pub const O_NOFOLLOW: ::c_int = 131072;
@@ -504,6 +505,7 @@ pub const TIOCSWINSZ: ::c_int = 21524;
504505
pub const FIONREAD: ::c_int = 21531;
505506
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
506507
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
508+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
507509

508510
pub const SYS_read: ::c_long = 63;
509511
pub const SYS_write: ::c_long = 64;

src/unix/linux_like/linux/musl/b64/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ s! {
132132

133133
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
134134
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
135+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
135136

136137
pub const SOCK_NONBLOCK: ::c_int = 2048;
137138

src/unix/linux_like/linux/musl/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,7 @@ pub const SIGUNUSED: ::c_int = ::SIGSYS;
537537
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
538538
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
539539
pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8;
540+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
540541

541542
pub const CPU_SETSIZE: ::c_int = 128;
542543

src/unix/linux_like/linux/no_align.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ macro_rules! expand_align {
4040
size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T],
4141
}
4242

43+
pub struct pthread_barrierattr_t {
44+
__align: [::c_int; 0],
45+
size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T],
46+
}
47+
4348
pub struct fanotify_event_metadata {
4449
__align: [::c_long; 0],
4550
pub event_len: __u32,
@@ -100,6 +105,26 @@ macro_rules! expand_align {
100105
__align: [::c_longlong; 0],
101106
size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T],
102107
}
108+
109+
pub struct pthread_barrier_t {
110+
#[cfg(any(target_arch = "mips",
111+
target_arch = "arm",
112+
target_arch = "m68k",
113+
target_arch = "powerpc",
114+
target_arch = "sparc",
115+
all(target_arch = "x86_64",
116+
target_pointer_width = "32")))]
117+
__align: [::c_long; 0],
118+
#[cfg(not(any(target_arch = "mips",
119+
target_arch = "arm",
120+
target_arch = "m68k",
121+
target_arch = "powerpc",
122+
target_arch = "sparc",
123+
all(target_arch = "x86_64",
124+
target_pointer_width = "32"))))]
125+
__align: [::c_longlong; 0],
126+
size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T],
127+
}
103128
}
104129
};
105130
}

src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,10 @@ s! {
189189

190190
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
191191
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
192+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
192193
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
193194
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
195+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
194196

195197
pub const SYS_gettid: ::c_long = 5178; // Valid for n64
196198

src/unix/linux_like/linux/uclibc/x86_64/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,8 @@ pub const __SIZEOF_PTHREAD_COND_T: usize = 48;
330330
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
331331
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
332332
pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8;
333+
pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
334+
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
333335
pub const PIDFD_NONBLOCK: ::c_int = 04000;
334336

335337
cfg_if! {

0 commit comments

Comments
 (0)