return (u64)t.tv_sec * 1000000 + t.tv_usec;
}
-void sleep_micros(cell usec)
-{
- usleep(usec);
-}
-
-void sleep_nanos(timespec ts)
+void sleep_nanos(u64 nsec)
{
+ timespec ts;
timespec ts_rem;
int ret;
+ ts.tv_sec = nsec / 1000000000;
+ ts.tv_nsec = nsec % 1000000000;
ret = nanosleep(&ts,&ts_rem);
while(ret == -1 && errno == EINTR)
{
u64 system_micros();
u64 nano_count();
-void sleep_micros(cell usec);
-void sleep_nanos(cell nsec);
+void sleep_nanos(u64 nsec);
void init_platform_globals();
fatal_error("Segment deallocation failed",0);
}
-void factor_vm::sleep_micros(u64 usec)
+void sleep_nanos(u64 nsec)
{
- Sleep((DWORD)(usec / 1000));
-}
-
-void factor_vm::sleep_nanos(u64 nsec)
-{
- Sleep((DWORD)(nsec / 1000000));
+ Sleep((DWORD)(nsec/1000000));
}
long getpagesize()
void factor_vm::primitive_sleep()
{
- sleep_micros(to_cell(dpop()));
+ sleep_nanos(factor_vm::to_unsigned_8(dpop()));
}
}
// os-windows
#if defined(WINDOWS)
- void sleep_micros(u64 usec);
void sleep_nanos(u64 nsec);
const vm_char *vm_executable_path();
const vm_char *default_image_path();