| 
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] or 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 |