Added support for nested server waits (to allow waiting in signal
handlers).

diff --git a/scheduler/thread.c b/scheduler/thread.c
index 738d4c8..6586088 100644
--- a/scheduler/thread.c
+++ b/scheduler/thread.c
@@ -91,7 +91,8 @@
     teb->exit_code = STILL_ACTIVE;
     teb->request_fd = -1;
     teb->reply_fd   = -1;
-    teb->wait_fd    = -1;
+    teb->wait_fd[0] = -1;
+    teb->wait_fd[1] = -1;
     teb->stack_top  = (void *)~0UL;
     teb->StaticUnicodeString.MaximumLength = sizeof(teb->StaticUnicodeBuffer);
     teb->StaticUnicodeString.Buffer = (PWSTR)teb->StaticUnicodeBuffer;
@@ -115,7 +116,8 @@
 
     close( teb->request_fd );
     close( teb->reply_fd );
-    close( teb->wait_fd );
+    close( teb->wait_fd[0] );
+    close( teb->wait_fd[1] );
     if (teb->stack_sel) FreeSelector16( teb->stack_sel );
     FreeSelector16( teb->teb_sel );
     if (teb->buffer) munmap( (void *)teb->buffer, teb->buffer_size );