libaio asynchronous syscall io_getevents blocks on error

From: Zubin Dittia
Date: Tue Oct 20 2009 - 17:58:24 EST


I'm writing a program that uses the kernel's io_submit/io_getevents
system calls.  What I would like to be able to do is submit N
operations for i/o on different files, and then call io_getevents with
min_nr = nr = N and a timeout of NULL, so that I can block until all N
operations have completed.  This works great, except when one of the
operations has an error (eg., if one of the descriptors is invalid).
In this case, the call to io_getevents appears to block indefinitely.
Shouldn't an error on one of the submitted operations count as a
completion event for that operation, so I can check the error code
when the call returns?  Any help would be appreciated.
Thanks in advance,
-Zubin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/