Module: Kernel

Defined in:
(unknown)

Instance Method Summary collapse

Instance Method Details

#msleep(vn) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'ext/msleep.c', line 8

static VALUE rb_msleep(VALUE self, VALUE vn) {
  unsigned long n;

#ifndef _WIN32
  unsigned long msec, sec;
  struct timespec req;
#endif

  n = FIX2LONG(vn);

#ifndef _WIN32
  msec = n % 1000;
  sec  = (n - msec) / 1000;

  req.tv_sec  = sec;
  req.tv_nsec = msec * 1000000;

  if (nanosleep(&req, NULL) != 0) {
    return Qnil;
  }
#else
  Sleep(n);
#endif

  return vn;
}