From: Remy Noel <remy.n...@blade-group.com>

It is possible for an io_poll callback to be concurrently executed along
with an aio_set_fd_handlers. This can cause all sorts of problems, like
a NULL callback or a bad opaque pointer.
We fixes that by using an remove/insert RCU scheme.

Please note that i did not test the win32 version.

Remy Noel (3):
  aio-posix: Fix concurrent aio_poll/set_fd_handler.
  util/aio-posix: Use RCU for handler insertion.
  aio: Do not use list_lock as a sync mechanism for aio_handlers
    anymore.

 include/block/aio.h |   4 +-
 util/aio-posix.c    | 148 ++++++++++++++++++++------------------------
 util/aio-win32.c    |  82 +++++++++---------------
 util/async.c        |   7 ++-
 4 files changed, 103 insertions(+), 138 deletions(-)

-- 
2.19.1


Reply via email to