Re: Fw: [PATCH] Fix mq_notify with SIGEV_NONE notification

From: Jakub Jelinek
Date: Wed Apr 14 2004 - 01:27:33 EST


On Wed, Apr 14, 2004 at 06:52:59AM +0200, Manfred Spraul wrote:
> >mq_notify (q, NULL)
> >and
> >struct sigevent ev = { .sigev_notify = SIGEV_NONE };
> >mq_notify (q, &ev)
> >are not the same thing in POSIX, yet the kernel treats them the same.
> >
> What should mq_notify(q, &{.sigev_notify = SIGEV_NONE}) do? Register a
> notification, but deliver nothing?

Yes. It makes it impossible to mq_notify for others until the owner
mq_notify (q, NULL) or until a message arrives at the queue while nobody is
blocked in mq_{,timed}receive or until the mqd_t through which it has been
registered is mq_close()d.
It is not very useful, sure, but neither is having two different
ways how to unregister notification, one is completely enough.
At which point it is IMHO better to follow the standard (and what other
OSes do), rather than invent something new.

Jakub
-
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/