Thread (3 messages) flat view 3 messages, 2 authors, 2018-01-16

Re: [PATCH 32/32] aio: implement io_pgetevents

From: Christoph Hellwig <hch@lst.de>
Date: 2018-01-15 08:53:10
Also in: linux-fsdevel, lkml, netdev

On Fri, Jan 12, 2018 at 03:44:52PM -0500, Jeff Moyer wrote:
Christoph Hellwig [off-list ref] writes:
quoted
This is the io_getevents equivalent of ppoll/pselect and allows to
properly mix signals and aio completions (especially with IOCB_CMD_POLL)
and atomically executes the following sequence:

	sigset_t origmask;

	pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);
	ret = io_getevents(ctx, min_nr, nr, events, timeout);
	pthread_sigmask(SIG_SETMASK, &origmask, NULL);

Note that unlike many other signal related calls we do not pass a sigmask
size, as that would get us to 7 arguments, which aren't easily supported
by the syscall infrastructure.  It seems a lot less painful to just add a
new syscall variant in the unlikely case we're going to increase the
sigset size.
pselect, as an example, crams the sigmask and size together.  Why not
just do that?  libaio can take care of setting that up.
Yes, I could try that.  It's just another double indirection for no
good reason.

--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to majordomo@kvack.org.  For more info on Linux AIO,
see: http://www.kvack.org/aio/
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help