diff options
author | FlavioJS <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-12-27 03:35:57 +0000 |
---|---|---|
committer | FlavioJS <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-12-27 03:35:57 +0000 |
commit | 1307b441cd2cdc94bdde1999d48aefb55d91e082 (patch) | |
tree | 4674edabfa271c4f0dd2b4f21f783640958e8cac /src/common/timer.c | |
parent | dfe4ede046db94e2e6e580d2efa13bb9a773ce15 (diff) | |
download | hercules-1307b441cd2cdc94bdde1999d48aefb55d91e082.tar.gz hercules-1307b441cd2cdc94bdde1999d48aefb55d91e082.tar.bz2 hercules-1307b441cd2cdc94bdde1999d48aefb55d91e082.tar.xz hercules-1307b441cd2cdc94bdde1999d48aefb55d91e082.zip |
* Tweeked the declaration and initialization defines for vectors.
* Made do_sockets leave the for loop as soon as the readable number of sockets returned by select is found.
* Made all posix compliant systems that support it and FreeBSD >= 5.1 (implements it but doesn't have the posix defines) use the precise and consistent tick() implementation.
* Minor tweek to HEAP_SEARCH (same variable can be used in from and to).
* Fixed the map server not exiting when make_listen_bind fails and returns -1.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11983 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/common/timer.c')
-rw-r--r-- | src/common/timer.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/common/timer.c b/src/common/timer.c index c66fd5960..2c8236e3d 100644 --- a/src/common/timer.c +++ b/src/common/timer.c @@ -12,8 +12,10 @@ #include <time.h> #ifdef WIN32 +#define WIN32_LEAN_AND_MEAN #include <windows.h> // GetTickCount() #else +#include <unistd.h> #include <sys/time.h> // struct timeval, gettimeofday() #endif @@ -93,7 +95,7 @@ static unsigned int tick(void) { #if defined(WIN32) return GetTickCount(); -#elif defined(__FREEBSD__) +#elif (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0 && defined(_POSIX_MONOTONIC_CLOCK) /* posix compliant */) || (defined(__FreeBSD_cc_version) && __FreeBSD_cc_version >= 500005 /* FreeBSD >= 5.1.0 */) struct timespec tval; clock_gettime(CLOCK_MONOTONIC, &tval); return tval.tv_sec * 1000 + tval.tv_nsec / 1000000; @@ -147,8 +149,8 @@ unsigned int gettick(void) #define HEAP_SEARCH(target,from,to,pos) \ do { \ int max,pivot; \ - pos = from; \ max = to; \ + pos = from; \ while (pos < max) { \ pivot = (pos + max) / 2; \ if (DIFF_TICK(target, timer_data[timer_heap[pivot]].tick) < 0) \ |