From 850c3ff232659125262bb5e30bef8451fac386bf Mon Sep 17 00:00:00 2001 From: Christopher Davis Date: Wed, 31 Mar 2010 20:30:55 -0700 Subject: Add evutil_tv_to_msec for safe conversion of timevals to milliseconds. This is useful for backends that require their timeout values be in milliseconds. --- win32select.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'win32select.c') diff --git a/win32select.c b/win32select.c index 7dc68c91..a3b8dd7d 100644 --- a/win32select.c +++ b/win32select.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -114,12 +115,6 @@ realloc_fd_sets(struct win32op *op, size_t new_size) return (0); } -static int -timeval_to_ms(struct timeval *tv) -{ - return ((tv->tv_sec * 1000) + (tv->tv_usec / 1000)); -} - static int do_fd_set(struct win32op *op, struct idx_info *ent, evutil_socket_t s, int read) { @@ -303,8 +298,12 @@ win32_dispatch(struct event_base *base, struct timeval *tv) win32op->readset_out->fd_count : win32op->writeset_out->fd_count; if (!fd_count) { + long msec = evutil_tv_to_msec(tv); + /* Sleep's DWORD argument is unsigned long */ + if (msec < 0) + msec = LONG_MAX; /* Windows doesn't like you to call select() with no sockets */ - Sleep(timeval_to_ms(tv)); + Sleep(msec); evsig_process(base); return (0); } -- cgit v1.2.1