Convert the object wait queue to a standard list.
diff --git a/server/fd.c b/server/fd.c
index c4c4445..ed95a74 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -1324,7 +1324,7 @@
struct fd *fd = get_obj_fd( obj );
if (!fd) return 0;
- if (!obj->head) /* first on the queue */
+ if (list_empty( &obj->wait_queue )) /* first on the queue */
set_fd_events( fd, fd->fd_ops->get_poll_events( fd ) );
add_queue( obj, entry );
release_object( fd );
@@ -1338,7 +1338,7 @@
grab_object( obj );
remove_queue( obj, entry );
- if (!obj->head) /* last on the queue is gone */
+ if (list_empty( &obj->wait_queue )) /* last on the queue is gone */
set_fd_events( fd, 0 );
release_object( obj );
release_object( fd );
@@ -1357,7 +1357,7 @@
if (ret)
set_fd_events( fd, 0 ); /* stop waiting on select() if we are signaled */
- else if (obj->head)
+ else if (!list_empty( &obj->wait_queue ))
set_fd_events( fd, events ); /* restart waiting on poll() if we are no longer signaled */
release_object( fd );