Commit c130c60b authored by Vladislav Vaintroub's avatar Vladislav Vaintroub

Cleanup. Provide accurate comment on my_getevents().

parent 78df9e37
...@@ -22,8 +22,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 - 1301 USA*/ ...@@ -22,8 +22,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 - 1301 USA*/
# include <libaio.h> # include <libaio.h>
# include <sys/syscall.h> # include <sys/syscall.h>
/** A simpler alternative to io_getevents(), without /*
aio_ring_is_empty() that may trigger SIGSEGV */ A hack, which so far seems to allow allow getevents thread to be interrupted
by io_destroy() from another thread
libaio's io_getevent() would sometimes crash when attempting this feat,
thus the raw syscall.
*/
static int my_getevents(io_context_t ctx, long min_nr, long nr, io_event *ev) static int my_getevents(io_context_t ctx, long min_nr, long nr, io_event *ev)
{ {
int saved_errno= errno; int saved_errno= errno;
...@@ -37,6 +43,8 @@ static int my_getevents(io_context_t ctx, long min_nr, long nr, io_event *ev) ...@@ -37,6 +43,8 @@ static int my_getevents(io_context_t ctx, long min_nr, long nr, io_event *ev)
return ret; return ret;
} }
#endif #endif
/* /*
Linux AIO implementation, based on native AIO. Linux AIO implementation, based on native AIO.
Needs libaio.h and -laio at the compile time. Needs libaio.h and -laio at the compile time.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment