Skip to content

Commit 1f870b8

Browse files
committed
Auto merge of rust-lang#297 - Amanieu:mutex_types, r=alexcrichton
Add pthread mutex type constants These are needed to create a pthread mutex that doesn't use lock elision on glibc.
2 parents e0202b8 + b2b9f29 commit 1f870b8

File tree

8 files changed

+29
-0
lines changed

8 files changed

+29
-0
lines changed

src/unix/bsd/apple/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -931,7 +931,10 @@ pub const _SC_TRACE_SYS_MAX: ::c_int = 129;
931931
pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 130;
932932
pub const _SC_PASS_MAX: ::c_int = 131;
933933

934+
pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0;
935+
pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1;
934936
pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2;
937+
pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL;
935938
pub const _PTHREAD_MUTEX_SIG_init: ::c_long = 0x32AAABA7;
936939
pub const _PTHREAD_COND_SIG_init: ::c_long = 0x3CB0B1BB;
937940
pub const _PTHREAD_RWLOCK_SIG_init: ::c_long = 0x2DA8B3B4;

src/unix/bsd/freebsdlike/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,11 @@ pub const _SC_HOST_NAME_MAX: ::c_int = 72;
646646
pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _;
647647
pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _;
648648
pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _;
649+
pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1;
649650
pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2;
651+
pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3;
652+
pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 4;
653+
pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_ERRORCHECK;
650654

651655
pub const SCHED_FIFO: ::c_int = 1;
652656
pub const SCHED_OTHER: ::c_int = 2;

src/unix/bsd/openbsdlike/bitrig.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,12 @@ pub const ST_NOSUID: ::c_ulong = 2;
270270
pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _;
271271
pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _;
272272
pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _;
273+
274+
pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1;
273275
pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2;
276+
pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3;
277+
pub const PTHREAD_MUTEX_STRICT_NP: ::c_int = 4;
278+
pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_STRICT_NP;
274279

275280
pub const TMP_MAX : ::c_uint = 0x7fffffff;
276281

src/unix/bsd/openbsdlike/netbsd.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,10 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
345345
ptr_owner: 0,
346346
ptr_private: 0 as *mut _,
347347
};
348+
pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0;
349+
pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1;
348350
pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2;
351+
pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL;
349352

350353
pub const EVFILT_AIO: ::int16_t = 2;
351354
pub const EVFILT_PROC: ::int16_t = 4;

src/unix/bsd/openbsdlike/openbsd.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,12 @@ pub const ST_NOSUID: ::c_ulong = 2;
239239
pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _;
240240
pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _;
241241
pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _;
242+
243+
pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1;
242244
pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2;
245+
pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3;
246+
pub const PTHREAD_MUTEX_STRICT_NP: ::c_int = 4;
247+
pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_STRICT_NP;
243248

244249
pub const TMP_MAX : ::c_uint = 0x7fffffff;
245250

src/unix/notbsd/android/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,10 @@ pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 84;
157157
pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 85;
158158
pub const _SC_NPROCESSORS_ONLN: ::c_int = 97;
159159

160+
pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0;
160161
pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1;
162+
pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2;
163+
pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL;
161164

162165
pub const FIOCLEX: ::c_int = 0x5451;
163166

src/unix/notbsd/linux/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,10 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
401401
__align: [],
402402
size: [0; __SIZEOF_PTHREAD_RWLOCK_T],
403403
};
404+
pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0;
404405
pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1;
406+
pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2;
407+
pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL;
405408
pub const __SIZEOF_PTHREAD_COND_T: usize = 48;
406409

407410
pub const SCHED_OTHER: ::c_int = 0;

src/unix/solaris/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -831,7 +831,10 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
831831
__pthread_rwlock_readercv: PTHREAD_COND_INITIALIZER,
832832
__pthread_rwlock_writercv: PTHREAD_COND_INITIALIZER
833833
};
834+
pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0;
835+
pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2;
834836
pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 4;
837+
pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL;
835838

836839
f! {
837840
pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () {

0 commit comments

Comments
 (0)