#include #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_TIMEB_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #if TIME_WITH_SYS_TIME #include #include #else #if HAVE_SYS_TIME_H #include #else #include #endif #endif #include /******************************************************************************* * sleep_ltp (see manual, Internal Functions) * * Sleeps for fractional seconds * * * * parameters: double tm fractional time to sleep (.001 sec res) * * * * Returns zero upon normal end-of-job (EOJ). * * j.dabritz 7/30/90 * *******************************************************************************/ long sleep_ltp( double tm) { double finish; double check; time_ltp(&check); for(finish = check + tm; check <= finish; time_ltp(&check)) G_sleep(0); return(0); } /******************************************************************************* * time_ltp (see manual, Internal Functions) * * Sets a double to the time in fractional seconds. * * * * parameters: double *time pointer to double to be set. * * * * Returns zero upon normal end-of-job (EOJ). * * j.dabritz 7/30/90 * *******************************************************************************/ #ifdef HAVE_GETTIMEOFDAY int time_ltp( double *time) { struct timeval tstruct; gettimeofday (&tstruct, NULL); *time = tstruct.tv_sec + tstruct.tv_usec / 1000000.0; return(0); } #else #ifdef HAVE_FTIME int time_ltp( double *time) { struct timeb tstruct; ftime(&tstruct); *time = tstruct.time + tstruct.millitm / 1000.0; return(0); } #else #ifdef HAVE_TIME int time_ltp(double *time) { time_t tloc; time(&tloc); /** get time (whole seconds) **/ *time = tloc; /** convert to a double **/ return(0); } #endif /* HAVE_TIME */ #endif /* HAVE_FTIME */ #endif /* HAVE_GETTIMEOFDAY */ /* Sleep */ unsigned int G_sleep (unsigned int seconds) { #ifdef __MINGW32__ /* TODO: no sleep for now */ return 0; #else /* __MINGW32__ */ return sleep(seconds); #endif /* __MINGW32__ */ }