--- deliantra/server/common/time.C 2006/08/13 17:16:01 1.1 +++ deliantra/server/common/time.C 2006/08/15 18:07:24 1.2 @@ -1,6 +1,6 @@ /* * static char *rcsid_time_c = - * "$Id: time.C,v 1.1 2006/08/13 17:16:01 elmex Exp $"; + * "$Id: time.C,v 1.2 2006/08/15 18:07:24 root Exp $"; */ /* @@ -148,69 +148,6 @@ return 0; } -/* - * sleep_delta checks how much time has elapsed since last tick. - * If it is less than max_time, the remaining time is slept with select(). - */ - -void -sleep_delta(void) -{ - static struct timeval new_time; - long sleep_sec, sleep_usec; - - (void) GETTIMEOFDAY(&new_time); - - sleep_sec = last_time.tv_sec - new_time.tv_sec; - sleep_usec = max_time - (new_time.tv_usec - last_time.tv_usec); - - /* This is very ugly, but probably the fastest for our use: */ - while (sleep_usec < 0) { - sleep_usec += 1000000; - sleep_sec -= 1; - } - while (sleep_usec > 1000000) { - sleep_usec -= 1000000; - sleep_sec +=1; - } - - log_time((new_time.tv_sec - last_time.tv_sec)*1000000 - + new_time.tv_usec - last_time.tv_usec); - - if (sleep_sec >= 0 && sleep_usec > 0) { - static struct timeval sleep_time; - sleep_time.tv_sec = sleep_sec; - sleep_time.tv_usec = sleep_usec; - -#ifndef WIN32 /* 'select' doesn't work on Windows, 'Sleep' is used instead */ - select(0, NULL, NULL, NULL, &sleep_time); -#else - if (sleep_time.tv_sec) Sleep(sleep_time.tv_sec*1000); - Sleep((int)(sleep_time.tv_usec/1000.)); -#endif - } - else - process_utime_long_count++; - /* - * Set last_time to when we're expected to wake up: - */ - last_time.tv_usec += max_time; - while (last_time.tv_usec > 1000000) { - last_time.tv_usec -= 1000000; - last_time.tv_sec++; - } - /* - * Don't do too much catching up: - * (Things can still get jerky on a slow/loaded computer) - */ - if (last_time.tv_sec * 1000000 + last_time.tv_usec < - new_time.tv_sec * 1000000 + new_time.tv_usec) - { - last_time.tv_sec = new_time.tv_sec; - last_time.tv_usec = new_time.tv_usec; - } -} - void set_max_time(long t) { max_time = t;