From d349f3c9418a792eed243e73ecc17ebe5e3da95f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Fri, 23 Mar 2007 20:40:03 +0000 Subject: [PATCH] select() is supposed to clear the sets in case of B_TIMED_OUT - found and patch by Hugo Santos - thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20412 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/fs/vfs_select.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/system/kernel/fs/vfs_select.cpp b/src/system/kernel/fs/vfs_select.cpp index 5c44f18ecc..9110ac5385 100644 --- a/src/system/kernel/fs/vfs_select.cpp +++ b/src/system/kernel/fs/vfs_select.cpp @@ -183,9 +183,16 @@ common_select(int numfds, fd_set *readSet, fd_set *writeSet, fd_set *errorSet, } } break; + case B_INTERRUPTED: count = B_INTERRUPTED; break; + + case B_TIMED_OUT: + fd_zero(readSet, numfds); + fd_zero(writeSet, numfds); + fd_zero(errorSet, numfds); + // supposed to fall through default: // B_TIMED_OUT, and B_WOULD_BLOCK count = 0;