nuuksio 0.0.0

Nuuksio asynchronous runtime
Documentation
fn timer_periodic(duration: Duration) -> libc::itimerspec {
    libc::itimerspec {
        it_value: EPSILON,
        it_interval: to_timespec(duration),
    }
}

fn timer_deadline(duration: Duration) -> libc::itimerspec {
    libc::itimerspec {
        it_value: to_timespec(duration),
        it_interval: ZERO,
    }
}

const ZERO: libc::timespec = libc::timespec {
    tv_sec: 0,
    tv_nsec: 0,
};

const EPSILON: libc::timespec = libc::timespec {
    tv_sec: 0,
    tv_nsec: 1,
};

fn to_timespec(duration: Duration) -> libc::timespec {
    let tv_sec = (duration.as_secs() as i64).abs();
    let tv_nsec = duration.subsec_nanos() as i64;
    libc::timespec { tv_sec, tv_nsec }
}