diff options
author | bors <bors@rust-lang.org> | 2021-10-19 03:51:42 +0000 |
---|---|---|
committer | bors <bors@rust-lang.org> | 2021-10-19 03:51:42 +0000 |
commit | 5d7f90ca900ef440c96aa0eacbf780a12c145f6b (patch) | |
tree | 4b9cd7d6b527ece2b3079d2365c0e03a4f89d9cf | |
parent | 6172388c68a1207acbbb5883b8141ca4039bc931 (diff) | |
parent | 5ddd0153e4da2c0749bcda428ae1c5f78aaf811e (diff) | |
download | rust-libc-5d7f90ca900ef440c96aa0eacbf780a12c145f6b.tar.gz |
Auto merge of #2455 - awidegreen:add_pthread_mutex_robust_support, r=JohnTitor
Adds pthread_mutexattr_[g|s]etrobust and pthread_mutex_consistent bindings
Adds pthread_mutexattr_[g|s]etrobust and pthread_mutex_consistent bindings
FreeBSD:
https://cgit.freebsd.org/src/tree/include/pthread.h?id=65436b2e1207a98a1c752c14f8c059238c0eafda#n140
Linux:
https://sourceware.org/git?p=glibc.git;a=blob;f=sysdeps/htl/bits/pthreadtypes.h;h=74127aea488a69af8fb63b8f353307e5d401a62b;hb=HEAD#l83
-rw-r--r-- | libc-test/semver/freebsd.txt | 3 | ||||
-rw-r--r-- | libc-test/semver/linux.txt | 3 | ||||
-rw-r--r-- | src/unix/bsd/freebsdlike/freebsd/mod.rs | 13 | ||||
-rw-r--r-- | src/unix/linux_like/linux/mod.rs | 11 |
4 files changed, 30 insertions, 0 deletions
diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 0a36d714d6..5e8cf83b9c 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -1650,9 +1650,12 @@ pthread_getcpuclockid pthread_getthreadid_np pthread_kill pthread_main_np +pthread_mutex_consistent pthread_mutex_timedlock pthread_mutexattr_getpshared pthread_mutexattr_setpshared +pthread_mutexattr_getrobust +pthread_mutexattr_setrobust pthread_rwlockattr_getpshared pthread_rwlockattr_setpshared pthread_setaffinity_np diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 08b79ba28d..ccfc2fb202 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2897,9 +2897,12 @@ pthread_getattr_np pthread_getcpuclockid pthread_getschedparam pthread_kill +pthread_mutex_consistent pthread_mutex_timedlock pthread_mutexattr_getpshared pthread_mutexattr_setpshared +pthread_mutexattr_getrobust +pthread_mutexattr_setrobust pthread_rwlockattr_setpshared pthread_setaffinity_np pthread_setschedparam diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 1f34b1abf6..92d8dac922 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -609,6 +609,8 @@ pub const EXTATTR_NAMESPACE_SYSTEM: ::c_int = 2; pub const PTHREAD_STACK_MIN: ::size_t = MINSIGSTKSZ; pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 4; +pub const PTHREAD_MUTEX_STALLED: ::c_int = 0; +pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1; pub const SIGSTKSZ: ::size_t = MINSIGSTKSZ + 32768; pub const SF_NODISKIO: ::c_int = 0x00000001; pub const SF_MNOWAIT: ::c_int = 0x00000002; @@ -1808,6 +1810,17 @@ extern "C" { cpusetp: *const cpuset_t, ) -> ::c_int; + pub fn pthread_mutex_consistent(mutex: *mut ::pthread_mutex_t) -> ::c_int; + + pub fn pthread_mutexattr_getrobust( + attr: *mut ::pthread_mutexattr_t, + robust: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setrobust( + attr: *mut ::pthread_mutexattr_t, + robust: ::c_int, + ) -> ::c_int; + pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 5f725f0e67..7f837f2ab8 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1491,6 +1491,8 @@ pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_MUTEX_STALLED: ::c_int = 0; +pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1; pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; pub const __SIZEOF_PTHREAD_COND_T: usize = 48; @@ -3619,6 +3621,7 @@ extern "C" { timeout: *const ::timespec, sigmask: *const sigset_t, ) -> ::c_int; + pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> ::c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, abstime: *const ::timespec, @@ -3734,6 +3737,14 @@ extern "C" { attr: *const pthread_mutexattr_t, pshared: *mut ::c_int, ) -> ::c_int; + pub fn pthread_mutexattr_getrobust( + attr: *const pthread_mutexattr_t, + robustness: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setrobust( + attr: *mut pthread_mutexattr_t, + robustness: ::c_int, + ) -> ::c_int; pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; pub fn faccessat( dirfd: ::c_int, |