about summary refs log tree commit diff
path: root/src/libstd/sys
diff options
context:
space:
mode:
authorgnzlbg <gonzalobg88@gmail.com>2019-06-21 17:35:48 +0200
committergnzlbg <gonzalobg88@gmail.com>2019-08-01 17:01:33 +0200
commit74dc2b6f6fc80dcb0d394949b9d7010009fc4bed (patch)
treec0cb56f35f8b3f3abe791a61136de948edca9e7e /src/libstd/sys
parent0b9d0b0ccb994274e8da7f010a09c681da38f745 (diff)
downloadrust-74dc2b6f6fc80dcb0d394949b9d7010009fc4bed.tar.gz
rust-74dc2b6f6fc80dcb0d394949b9d7010009fc4bed.zip
Remove mach dependency
Diffstat (limited to 'src/libstd/sys')
-rw-r--r--src/libstd/sys/unix/time.rs26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/libstd/sys/unix/time.rs b/src/libstd/sys/unix/time.rs
index b7d2c4562f7..02f377d55c9 100644
--- a/src/libstd/sys/unix/time.rs
+++ b/src/libstd/sys/unix/time.rs
@@ -137,9 +137,21 @@ mod inner {
         t: Timespec::zero(),
     };
 
+    #[repr(C)]
+    #[derive(Copy, Clone)]
+    struct mach_timebase_info {
+        numer: u32,
+        denom: u32,
+    }
+    type mach_timebase_info_t = *mut mach_timebase_info;
+    type kern_return_t = libc::c_int;
+
     impl Instant {
         pub fn now() -> Instant {
-            Instant { t: unsafe { mach::mach_time::mach_absolute_time() } }
+            extern "C" {
+                fn mach_absolute_time() -> u64;
+            }
+            Instant { t: unsafe { mach_absolute_time() } }
         }
 
         pub const fn zero() -> Instant {
@@ -230,9 +242,8 @@ mod inner {
         Some(mul_div_u64(nanos, info.denom as u64, info.numer as u64))
     }
 
-    fn info() -> mach::mach_time::mach_timebase_info {
-        static mut INFO: mach::mach_time::mach_timebase_info
-            = mach::mach_time::mach_timebase_info {
+    fn info() -> mach_timebase_info {
+        static mut INFO: mach_timebase_info = mach_timebase_info {
             numer: 0,
             denom: 0,
         };
@@ -246,7 +257,12 @@ mod inner {
 
             // ... otherwise learn for ourselves ...
             let mut info = mem::zeroed();
-            mach::mach_time::mach_timebase_info(&mut info);
+            extern "C" {
+                fn mach_timebase_info(info: mach_timebase_info_t)
+                                      -> kern_return_t;
+            }
+
+            mach_timebase_info(&mut info);
 
             // ... and attempt to be the one thread that stores it globally for
             // all other threads