diff options
Diffstat (limited to 'net/sdl_net/files/patch-SDLnetselect.c')
-rw-r--r-- | net/sdl_net/files/patch-SDLnetselect.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/net/sdl_net/files/patch-SDLnetselect.c b/net/sdl_net/files/patch-SDLnetselect.c new file mode 100644 index 000000000000..b29640787a83 --- /dev/null +++ b/net/sdl_net/files/patch-SDLnetselect.c @@ -0,0 +1,29 @@ + +$FreeBSD$ + +--- SDLnetselect.c 2001/07/25 09:44:01 1.1 ++++ SDLnetselect.c 2001/07/25 09:45:57 +@@ -175,6 +175,7 @@ + SOCKET maxfd; + int retval; + struct timeval tv; ++ struct timeval *tmp; + fd_set mask; + + /* Find the largest file descriptor */ +@@ -199,8 +200,14 @@ + tv.tv_sec = timeout/1000; + tv.tv_usec = (timeout%1000)*1000; + ++ /* XXX: Workaround for a bug in FreeBSD - w/o it in some cases select() chews 100% CPU */ ++ if (timeout == ~0) ++ tmp = NULL; ++ else ++ tmp = &tv; ++ + /* Look! */ +- retval = select(maxfd+1, &mask, NULL, NULL, &tv); ++ retval = select(maxfd+1, &mask, NULL, NULL, tmp); + } while ( errno == EINTR ); + + /* Mark all file descriptors ready that have data available */ |