X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=sys_shared.c;fp=sys_shared.c;h=d06c88499b1cc5db5a05f5c8d6026a5afc4d8777;hp=745a839eb6ae0f1bfe9594a6f4695e5e9354d308;hb=710d4ddf4df479bf2c87b8fbc31524aec6c3cd80;hpb=d7763f6f558a8444ffaec0315c11d75e1e766eab diff --git a/sys_shared.c b/sys_shared.c index 745a839e..d06c8849 100644 --- a/sys_shared.c +++ b/sys_shared.c @@ -508,7 +508,7 @@ double Sys_Sleep(double time) else if(sys_supportsdlgetticks && sys_usesdldelay.integer) Sys_SDL_Delay(microseconds / 1000); #if HAVE_SELECT - else + else if (cls.state == ca_dedicated && sv_checkforpacketsduringsleep.integer) { struct timeval tv; lhnetsocket_t *s; @@ -516,30 +516,27 @@ double Sys_Sleep(double time) int lastfd = -1; FD_ZERO(&fdreadset); - if (cls.state == ca_dedicated && sv_checkforpacketsduringsleep.integer) + List_For_Each_Entry(s, &lhnet_socketlist.list, lhnetsocket_t, list) { - List_For_Each_Entry(s, &lhnet_socketlist.list, lhnetsocket_t, list) + if (s->address.addresstype == LHNETADDRESSTYPE_INET4 || s->address.addresstype == LHNETADDRESSTYPE_INET6) { - if (s->address.addresstype == LHNETADDRESSTYPE_INET4 || s->address.addresstype == LHNETADDRESSTYPE_INET6) - { - if (lastfd < s->inetsocket) - lastfd = s->inetsocket; + if (lastfd < s->inetsocket) + lastfd = s->inetsocket; #if defined(WIN32) && !defined(_MSC_VER) - FD_SET((int)s->inetsocket, &fdreadset); + FD_SET((int)s->inetsocket, &fdreadset); #else - FD_SET((unsigned int)s->inetsocket, &fdreadset); + FD_SET((unsigned int)s->inetsocket, &fdreadset); #endif - } } } tv.tv_sec = microseconds / 1000000; tv.tv_usec = microseconds % 1000000; // on Win32, select() cannot be used with all three FD list args being NULL according to MSDN - // (so much for POSIX...) - // bones_was_here: but a zeroed fd_set seems to be tolerated (tested on Win 7) + // (so much for POSIX...), not with an empty fd_set either. select(lastfd + 1, &fdreadset, NULL, NULL, &tv); } -#elif HAVE_USLEEP +#endif +#if HAVE_USLEEP else usleep(microseconds); #elif HAVE_Sleep