On 08/02/13 02:03, Andy Lutomirski wrote:
There may be some
advantage to adding (later on, if needed) an option to change the
flags set in:
+ if (waitqueue_active(&ctx->wqh))
+ wake_up_locked_poll(&ctx->wqh,
+ (unsigned long)ctx->mask.events);
(i.e. to allow the second parameter to omit some bits that were
already signaled.) Allowing write to write a bigger struct in the
future won't break anything.
I think I don't follow. Either the second parameter is supposed to be
*newly* signaled events, in which case the events that were already signaled
in the past should be ommitted, or it is meant to be *all* signaled events,
in which case the current implementation is OK.
I defer to the experts here. But I suspect that if you want to
perfectly emulate sockets, you may need to vary what you specify.
(IIRC tcp sockets report an EPOLLIN edge every time data is received
even if the receive buffer wasn't empty.)