41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'opal/opal/corelib/process.rb', line 41
def self.clock_gettime(clock_id, unit = :float_second)
(clock = @__clocks__[clock_id]) || raise(Errno::EINVAL, "clock_gettime(#{clock_id}) #{@__clocks__[clock_id]}")
%x{
var ms = clock();
switch (unit) {
case 'float_second': return (ms / 1000); // number of seconds as a float (default)
case 'float_millisecond': return (ms / 1); // number of milliseconds as a float
case 'float_microsecond': return (ms * 1000); // number of microseconds as a float
case 'second': return ((ms / 1000) | 0); // number of seconds as an integer
case 'millisecond': return ((ms / 1) | 0); // number of milliseconds as an integer
case 'microsecond': return ((ms * 1000) | 0); // number of microseconds as an integer
case 'nanosecond': return ((ms * 1000000) | 0); // number of nanoseconds as an integer
default: #{raise ArgumentError, "unexpected unit: #{unit}"}
}
}
end
|