about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorMichael Neumann <mneumann@ntecs.de>2015-01-06 10:53:32 +0100
committerValerii Hiora <valerii.hiora@gmail.com>2015-01-06 20:12:19 +0200
commit134eb0e26f6c2d89b852995295d364614d6b7299 (patch)
tree05fd42e0c49953d12174df9c22db790c04266dc1 /src/libstd
parent8efd9901b628d687d11a4d0ccc153553b38ada49 (diff)
downloadrust-134eb0e26f6c2d89b852995295d364614d6b7299.tar.gz
rust-134eb0e26f6c2d89b852995295d364614d6b7299.zip
Tuning pthread_key_t type
Both FreeBSD and DragonFly define pthread_key_t as int, while Linux
defines it as uint. As pthread_key_t is used as an opaque type and
storage size of both int and uint are the same, this is rather a
cosmetic change.

iOS uses ulong (as OS X) so difference is critical on 64bit platforms.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/sys/unix/thread_local.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libstd/sys/unix/thread_local.rs b/src/libstd/sys/unix/thread_local.rs
index e507377a8fc..ea1e9c261fe 100644
--- a/src/libstd/sys/unix/thread_local.rs
+++ b/src/libstd/sys/unix/thread_local.rs
@@ -37,10 +37,18 @@ pub unsafe fn destroy(key: Key) {
     debug_assert_eq!(r, 0);
 }
 
-#[cfg(target_os = "macos")]
+#[cfg(any(target_os = "macos",
+          target_os = "ios"))]
 type pthread_key_t = ::libc::c_ulong;
 
-#[cfg(not(target_os = "macos"))]
+#[cfg(any(target_os = "freebsd",
+          target_os = "dragonfly"))]
+type pthread_key_t = ::libc::c_int;
+
+#[cfg(not(any(target_os = "macos",
+              target_os = "ios",
+              target_os = "freebsd",
+              target_os = "dragonfly")))]
 type pthread_key_t = ::libc::c_uint;
 
 extern {