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