Re: [Qemu-devel] [PATCH v1 1/3] util/aio-win32: Only select on what we are actually waiting for

2017-06-29 Thread Philippe Mathieu-Daudé

On 06/29/2017 02:16 PM, Alistair Francis wrote:

Signed-off-by: Alistair Francis 
Acked-by: Edgar E. Iglesias 


Reviewed-by: Philippe Mathieu-Daudé 


---
Changes since RFC:
  - Include more bitmasks for the select call

  util/aio-win32.c | 13 ++---
  1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/util/aio-win32.c b/util/aio-win32.c
index bca496a47a..d6d5e02f00 100644
--- a/util/aio-win32.c
+++ b/util/aio-win32.c
@@ -71,6 +71,7 @@ void aio_set_fd_handler(AioContext *ctx,
  }
  } else {
  HANDLE event;
+long bitmask = 0;
  
  if (node == NULL) {

  /* Alloc and insert if it's not already there */
@@ -95,10 +96,16 @@ void aio_set_fd_handler(AioContext *ctx,
  node->io_write = io_write;
  node->is_external = is_external;
  
+if (io_read) {

+bitmask |= FD_READ | FD_ACCEPT | FD_CLOSE;
+}
+
+if (io_write) {
+bitmask |= FD_WRITE | FD_CONNECT;
+}
+
  event = event_notifier_get_handle(>notifier);
-WSAEventSelect(node->pfd.fd, event,
-   FD_READ | FD_ACCEPT | FD_CLOSE |
-   FD_CONNECT | FD_WRITE | FD_OOB);
+WSAEventSelect(node->pfd.fd, event, bitmask);
  }
  
  qemu_lockcnt_unlock(>list_lock);






[Qemu-devel] [PATCH v1 1/3] util/aio-win32: Only select on what we are actually waiting for

2017-06-29 Thread Alistair Francis
Signed-off-by: Alistair Francis 
Acked-by: Edgar E. Iglesias 
---
Changes since RFC:
 - Include more bitmasks for the select call

 util/aio-win32.c | 13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/util/aio-win32.c b/util/aio-win32.c
index bca496a47a..d6d5e02f00 100644
--- a/util/aio-win32.c
+++ b/util/aio-win32.c
@@ -71,6 +71,7 @@ void aio_set_fd_handler(AioContext *ctx,
 }
 } else {
 HANDLE event;
+long bitmask = 0;
 
 if (node == NULL) {
 /* Alloc and insert if it's not already there */
@@ -95,10 +96,16 @@ void aio_set_fd_handler(AioContext *ctx,
 node->io_write = io_write;
 node->is_external = is_external;
 
+if (io_read) {
+bitmask |= FD_READ | FD_ACCEPT | FD_CLOSE;
+}
+
+if (io_write) {
+bitmask |= FD_WRITE | FD_CONNECT;
+}
+
 event = event_notifier_get_handle(>notifier);
-WSAEventSelect(node->pfd.fd, event,
-   FD_READ | FD_ACCEPT | FD_CLOSE |
-   FD_CONNECT | FD_WRITE | FD_OOB);
+WSAEventSelect(node->pfd.fd, event, bitmask);
 }
 
 qemu_lockcnt_unlock(>list_lock);
-- 
2.11.0