From: Steven Stewart-Gallus <sstewartgallus00@mylangara.bc.ca>
To: Manfred Spraul <manfred@colorfullife.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
dbueso@suse.de
Subject: Re: [PATCH] V1 1/2] ipc: let message queues use SIGEV_THREAD_ID with mq_notify
Date: Sun, 21 Sep 2014 17:40:14 +0000 (GMT) [thread overview]
Message-ID: <fabced99911c.541f0d7e@langara.bc.ca> (raw)
In-Reply-To: <541ED4C2.2050009@colorfullife.com>
> Could you explain what you mean with "only thread-safe way"?
> I'm a bit relunctant to extend mq_notify() without understanding
> the reason.
>
> What about:
> - use sigprocmask()
> - create one worker thread
> - then in a loop in that worker thread: use sigwaitinfo() or
> signalfd()
> to collect the signals.
Those all modify global state and are unusable by library
code. Hogging a signal for your own library is bad.
> And one point I don't like: Within timer_create():
> > SIGEV_THREAD_ID (Linux-specific)
> > [...]
> > The sigev_notify_thread_id field specifies a kernel thread ID,
> > that is, the value returned by clone(2) or gettid(2).
>
> Does that mean that SIGEV_THREAD_ID is guaranteed to remain
> Linux-specific, it's implicitely linked to the Linux
> clone()/gettid() threading model?
>
> > This flag is intended only for use by threading libraries.
Yes this is low-level Linux specific stuff.
Maybe GLibc could create a more abstract and portable interface on top
of SIGEV_THREAD_ID that other OS's and libraries could implement? This
is pretty much not relevant to Linux kernel code though except that
more features that use SIGEV_THREAD_ID would motivate GLibc developers
to create a wrapper over this and that maybe the Linux kernel could be
modified to make it easier to create a more abstract and portable
wrapper.
If you feel that the whole SIGEV_THREAD_ID line of functionality was a
mistake in the first place and that people should use signals less and
use functionality like epoll more that's also okay.
If you also feel that nobody would use the feature in the first place
that's okay too.
Personally, it just bugged me that SIGEV_THREAD_ID was only used by
timers and not in a few other places where it seems like an obvious
fit.
Thank you,
Steven Stewart-Gallus
next prev parent reply other threads:[~2014-09-21 17:40 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-21 13:38 [PATCH] V1 1/2] ipc: let message queues use SIGEV_THREAD_ID with mq_notify Manfred Spraul
2014-09-21 17:40 ` Steven Stewart-Gallus [this message]
-- strict thread matches above, loose matches on Subject: below --
2014-08-24 3:34 Steven Stewart-Gallus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=fabced99911c.541f0d7e@langara.bc.ca \
--to=sstewartgallus00@mylangara.bc.ca \
--cc=akpm@linux-foundation.org \
--cc=dbueso@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=manfred@colorfullife.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).