Red Hat Bugzilla – Bug 170116
aio_sigevent in aio control block is ignored if request is posted using lio_listio()
Last modified: 2007-11-30 17:11:14 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Fedora/1.7.8-2
Description of problem:
In fact, I'm not sure that it is a bug. From lio_listio man it is not clear if it is allowed to specify different notification for separate requests posted using lio_listio or not.
From the one hand it is specified that ""If sig is NULL, then no asynchronous notification shall occur."
From the other hand in the description of EINTR error description it is stated that "Note that, since each I/O operation invoked by lio_listio() may possibly provoke a signal when it completes ...". How the request may provoke the signal is it's not allowed to specify the separate notification for it?
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create the socket, connect it.
2. Construct aio control block with SIGEV_SIGNAL or SIGEV_THREAD notification.
3. Post the aio request using aio_read - the completion notification is received.
4. Post the aio request using lio_listio(LIO_NOWAIT) - no completion notification is received.
Expected Results: IMHO all per-request notifications (if specified) and notification specified in sig parameter of lio_listio() should be delivered.
Should be fixed in glibc-2.3.90-26 in rawhide.