On 01/13/11 15:00, Amit Shah wrote:
On (Thu) Jan 13 2011 [14:55:25], Gerd Hoffmann wrote:
On 01/13/11 14:00, Amit Shah wrote:
  {
-    return assign_fd_handlers(fd, fd_read_poll, fd_read, fd_write, opaque);
+    assign_fd_handlers(fd, fd_read_poll, fd_read, fd_write, opaque);
+    set_read_poll_fd_action(fd, true);
+    set_read_fd_action(fd, true);
+    set_write_fd_action(fd, true);
+    return 0;
  }

I'd suggest to move the *action calls into assign_fd_handlers() so
the handlers default to being enabled in all cases.  This should
match what most users need and thus minimize the number of *_action
calls needed.

What may happen with that is the fd may get select()-ed for an operation
that it didn't want to be put on the queue for.

I can't see such a race window given that most qemu code runs serialized anyway. If you call assign_fd_handlers() + set_write_fd_action(false) in sequence I can't see how a select call can happen inbetween ...

cheers,
  Gerd


Reply via email to