On 10/1/20 1:03 AM, Tycho Andersen wrote: > On Wed, Sep 30, 2020 at 10:34:51PM +0200, Michael Kerrisk (man-pages) wrote: >> Hi Tycho, >> >> Thanks for taking time to look at the page! >> >> On 9/30/20 5:03 PM, Tycho Andersen wrote: >>> On Wed, Sep 30, 2020 at 01:07:38PM +0200, Michael Kerrisk (man-pages) wrote: [...] >>>> ┌─────────────────────────────────────────────────────┐ >>>> │FIXME │ >>>> ├─────────────────────────────────────────────────────┤ >>>> │Interestingly, after the event had been received, │ >>>> │the file descriptor indicates as writable (verified │ >>>> │from the source code and by experiment). How is this │ >>>> │useful? │ >>> >>> You're saying it should just do EPOLLOUT and not EPOLLWRNORM? Seems >>> reasonable. >> >> No, I'm saying something more fundamental: why is the FD indicating as >> writable? Can you write something to it? If yes, what? If not, then >> why do these APIs want to say that the FD is writable? > > You can't via read(2) or write(2), but conceptually NOTIFY_RECV and > NOTIFY_SEND are reading and writing events from the fd. I don't know > that much about the poll interface though -- is it possible to > indicate "here's a pseudo-read event"? It didn't look like it, so I > just (ab-)used POLLIN and POLLOUT, but probably that's wrong. I think the POLLIN thing is fine. So, I think maybe I now understand what you intended with setting POLLOUT: the notification has been received ("read") and now the FD can be used to NOTIFY_SEND ("write") a response. Right? If that's correct, I don't have a problem with it. I just wonder: is it useful? IOW: are there situations where the process doing the NOTIFY_SEND might want to test for POLLOUT because the it doesn't know whether a NOTIFY_RECV has occurred? Thanks, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/