remove sleep_micros, add sleeo_nanos to vm

db4
Doug Coleman 2009-11-19 04:49:29 -06:00
parent 1b3ecdf62e
commit 987602235e
5 changed files with 8 additions and 17 deletions

View File

@ -47,15 +47,13 @@ u64 system_micros()
return (u64)t.tv_sec * 1000000 + t.tv_usec; return (u64)t.tv_sec * 1000000 + t.tv_usec;
} }
void sleep_micros(cell usec) void sleep_nanos(u64 nsec)
{
usleep(usec);
}
void sleep_nanos(timespec ts)
{ {
timespec ts;
timespec ts_rem; timespec ts_rem;
int ret; int ret;
ts.tv_sec = nsec / 1000000000;
ts.tv_nsec = nsec % 1000000000;
ret = nanosleep(&ts,&ts_rem); ret = nanosleep(&ts,&ts_rem);
while(ret == -1 && errno == EINTR) while(ret == -1 && errno == EINTR)
{ {

View File

@ -54,8 +54,7 @@ void dump_stack_signal(int signal, siginfo_t* siginfo, void* uap);
u64 system_micros(); u64 system_micros();
u64 nano_count(); u64 nano_count();
void sleep_micros(cell usec); void sleep_nanos(u64 nsec);
void sleep_nanos(cell nsec);
void init_platform_globals(); void init_platform_globals();

View File

@ -126,14 +126,9 @@ segment::~segment()
fatal_error("Segment deallocation failed",0); fatal_error("Segment deallocation failed",0);
} }
void factor_vm::sleep_micros(u64 usec) void sleep_nanos(u64 nsec)
{ {
Sleep((DWORD)(usec / 1000)); Sleep((DWORD)(nsec/1000000));
}
void factor_vm::sleep_nanos(u64 nsec)
{
Sleep((DWORD)(nsec / 1000000));
} }
long getpagesize() long getpagesize()

View File

@ -20,7 +20,7 @@ void factor_vm::primitive_nano_count()
void factor_vm::primitive_sleep() void factor_vm::primitive_sleep()
{ {
sleep_micros(to_cell(dpop())); sleep_nanos(factor_vm::to_unsigned_8(dpop()));
} }
} }

View File

@ -674,7 +674,6 @@ struct factor_vm
// os-windows // os-windows
#if defined(WINDOWS) #if defined(WINDOWS)
void sleep_micros(u64 usec);
void sleep_nanos(u64 nsec); void sleep_nanos(u64 nsec);
const vm_char *vm_executable_path(); const vm_char *vm_executable_path();
const vm_char *default_image_path(); const vm_char *default_image_path();