C time

include c_time_wrapper
module c_time(microseconds, milliseconds, seconds) = {
    action start
    action stop
    action timeout
    action now_sec returns (i:seconds)
    action now_micros returns (i:microseconds)
    action now_millis returns (i:milliseconds)
    action now_sec_last_bp returns (i:seconds)
    action now_micros_last_bp returns (i:microseconds)
    action now_millis_last_bp returns (i:milliseconds)
    action sleep(i:milliseconds)
    action sleep_fake(i:milliseconds) returns (r:milliseconds)
    action sleep_signal(i:milliseconds) returns (r:milliseconds)
    action sleep_signal_and_generate(i:milliseconds) returns (r:milliseconds)
    action non_blocking_sleep_signal_and_generate(i:milliseconds) returns (r:milliseconds)
    action is_sleep_fake_timeout returns (b:bool)

    object spec = { }

    instance impl : c_time_wrapper(this)
}