Skip to content

Commit

Permalink
Fix libtime
Browse files Browse the repository at this point in the history
  • Loading branch information
sfackler committed Sep 30, 2014
1 parent ad83352 commit 448c8bf
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions src/libtime/lib.rs
Expand Up @@ -47,7 +47,7 @@ mod rustrt {
}
}

#[cfg(unix, not(target_os = "macos"), not(target_os = "ios"))]
#[cfg(all(unix, not(target_os = "macos"), not(target_os = "ios")))]
mod imp {
use libc::{c_int, timespec};

Expand All @@ -61,8 +61,7 @@ mod imp {
}

}
#[cfg(target_os = "macos")]
#[cfg(target_os = "ios")]
#[cfg(any(target_os = "macos", target_os = "ios"))]
mod imp {
use libc::{timeval, timezone, c_int, mach_timebase_info};

Expand Down Expand Up @@ -150,16 +149,15 @@ pub fn get_time() -> Timespec {
((ns_since_1970 % 1000000) * 1000) as i32)
}

#[cfg(target_os = "macos")]
#[cfg(target_os = "ios")]
#[cfg(any(target_os = "macos", target_os = "ios"))]
unsafe fn os_get_time() -> (i64, i32) {
use std::ptr;
let mut tv = libc::timeval { tv_sec: 0, tv_usec: 0 };
imp::gettimeofday(&mut tv, ptr::null_mut());
(tv.tv_sec as i64, tv.tv_usec * 1000)
}

#[cfg(not(target_os = "macos"), not(target_os = "ios"), not(windows))]
#[cfg(not(any(target_os = "macos", target_os = "ios", windows)))]
unsafe fn os_get_time() -> (i64, i32) {
let mut tv = libc::timespec { tv_sec: 0, tv_nsec: 0 };
imp::clock_gettime(libc::CLOCK_REALTIME, &mut tv);
Expand Down Expand Up @@ -190,8 +188,7 @@ pub fn precise_time_ns() -> u64 {
return (ticks as u64 * 1000000000) / (ticks_per_s as u64);
}

#[cfg(target_os = "macos")]
#[cfg(target_os = "ios")]
#[cfg(any(target_os = "macos", target_os = "ios"))]
fn os_precise_time_ns() -> u64 {
static mut TIMEBASE: libc::mach_timebase_info = libc::mach_timebase_info { numer: 0,
denom: 0 };
Expand All @@ -205,7 +202,7 @@ pub fn precise_time_ns() -> u64 {
}
}

#[cfg(not(windows), not(target_os = "macos"), not(target_os = "ios"))]
#[cfg(not(any(windows, target_os = "macos", target_os = "ios")))]
fn os_precise_time_ns() -> u64 {
let mut ts = libc::timespec { tv_sec: 0, tv_nsec: 0 };
unsafe {
Expand Down

0 comments on commit 448c8bf

Please sign in to comment.