server: Fix the handling of the signaled status for file descriptors.
File handles are signaled when an I/O operation completes, and reset
when another operation is queued.
diff --git a/server/async.c b/server/async.c
index 027dd25..e0877b2 100644
--- a/server/async.c
+++ b/server/async.c
@@ -193,6 +193,7 @@
list_add_tail( &queue->queue, &async->queue_entry );
grab_object( async );
+ if (queue->fd) set_fd_signaled( queue->fd, 0 );
if (event) reset_event( event );
return async;
}
@@ -230,6 +231,7 @@
thread_queue_apc( async->thread, NULL, &data );
}
if (async->event) set_event( async->event );
+ else if (async->queue->fd) set_fd_signaled( async->queue->fd, 1 );
}
}