Regular files are always ready for I/O, no need to poll on them.
authorAlexandre Julliard <julliard@winehq.org>
Fri, 25 Feb 2005 14:02:20 +0000 (14:02 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Fri, 25 Feb 2005 14:02:20 +0000 (14:02 +0000)
server/fd.c

index 8e9237cf3e7ff6f0b66e20e793ca642674fdb42a..c4c44459ffde68318d5be91315b917de0eddb880 100644 (file)
@@ -1347,9 +1347,13 @@ void default_fd_remove_queue( struct object *obj, struct wait_queue_entry *entry
 /* default signaled() routine for objects that poll() on an fd */
 int default_fd_signaled( struct object *obj, struct thread *thread )
 {
+    int events, ret;
     struct fd *fd = get_obj_fd( obj );
-    int events = fd->fd_ops->get_poll_events( fd );
-    int ret = check_fd_events( fd, events ) != 0;
+
+    if (fd->inode) return 1;  /* regular files are always signaled */
+
+    events = fd->fd_ops->get_poll_events( fd );
+    ret = check_fd_events( fd, events ) != 0;
 
     if (ret)
         set_fd_events( fd, 0 ); /* stop waiting on select() if we are signaled */