diff options
author | Andrei Odintsov <forestryks1@gmail.com> | 2023-01-05 13:24:35 +0000 |
---|---|---|
committer | Andrei Odintsov <forestryks1@gmail.com> | 2023-01-11 11:08:49 +0000 |
commit | 4625f47376ce9700a6cbcbd60d50404b879ca9e2 (patch) | |
tree | b55dc27dcfff1257937c6cc17657d114e2060599 /src/unix/linux_like/linux/mod.rs | |
parent | cfd932d57d9b971b43e21dabc83ee514d270ba7d (diff) | |
download | rust-libc-4625f47376ce9700a6cbcbd60d50404b879ca9e2.tar.gz |
Add pthread barrier
Diffstat (limited to 'src/unix/linux_like/linux/mod.rs')
-rw-r--r-- | src/unix/linux_like/linux/mod.rs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index d3d627234c..366281a5ba 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -938,6 +938,28 @@ cfg_if! { } } + impl PartialEq for pthread_barrier_t { + fn eq(&self, other: &pthread_barrier_t) -> bool { + self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) + } + } + + impl Eq for pthread_barrier_t {} + + impl ::fmt::Debug for pthread_barrier_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_barrier_t") + .field("size", &self.size) + .finish() + } + } + + impl ::hash::Hash for pthread_barrier_t { + fn hash<H: ::hash::Hasher>(&self, state: &mut H) { + self.size.hash(state); + } + } + impl PartialEq for sockaddr_alg { fn eq(&self, other: &sockaddr_alg) -> bool { self.salg_family == other.salg_family @@ -4169,6 +4191,23 @@ extern "C" { lock: *mut pthread_mutex_t, abstime: *const ::timespec, ) -> ::c_int; + pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_getpshared( + attr: *const ::pthread_barrierattr_t, + shared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_barrierattr_setpshared( + attr: *mut ::pthread_barrierattr_t, + shared: ::c_int, + ) -> ::c_int; + pub fn pthread_barrier_init( + barrier: *mut pthread_barrier_t, + attr: *const ::pthread_barrierattr_t, + count: ::c_uint, + ) -> ::c_int; + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::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; |