From: Jan Kiszka <jan.kiszka@domain.hid>
To: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Cc: Xenomai core <Xenomai-core@domain.hid>
Subject: Re: [Xenomai-core] [PATCH 1/1] Use SIGWINCH to trigger priority change in user-space.
Date: Sun, 19 Oct 2008 13:22:57 +0200 [thread overview]
Message-ID: <48FB1891.3060609@domain.hid> (raw)
In-Reply-To: <48FB17BD.7010904@domain.hid>
[-- Attachment #1: Type: text/plain, Size: 2411 bytes --]
Gilles Chanteperdrix wrote:
> Jan Kiszka wrote:
>> I wonder if we shouldn't switch the signal hooking strategy: So far we
>> install the handler at shadow thread creation time, saving a potentially
>> installed handler of the application for redirection of
>> Xenomai-unrelated events. But that only works if the application
>> installed the handler before it creates the first shadow thread, right?
>> If the app decides to install/change the SIGWINCH handler later on
>> (without taking care of our handler), we will loose.
>>
>> Suggestion: As this is fragile and cannot be solved transparently, lets
>> document this signal requirement of Xenomai, e.g. in all task/thread
>> creation functions of the skins. Tell the user that Xenomai will install
>> a custom SIGWINCH handler and that, if the app wants to override it, it
>> has to make sure to _first_ call into a Xenomai-provided handler and
>> check if that one wants to handle the event. I'm thinking of something
>> like int xeno_sigwinch_handler(int sig, siginfo_t *si, void *ctxt),
>> where the return code is non-zero in case the signal was processed.
>>
>> With this policy in place, we can switch the signal handler installation
>> above to __attribute__ ((construtor)) and save us all the changes
>> regarding sigshadow_install below.
>
> You mean to push the burden of identifying the signal source and calling
> the proper handler on the user. With the current approach we take care
> of that burden, I think it is better. But I agree that this should be
> documented somewhere.
Nope, the burden will still be Xenomai's, encoded in
xeno_sigwinch_handler. The app will only have to check for its return code.
>
>> One question currently remains open for me, both regarding your approach
>> as well as my suggestion: What happens if some app links against more
>> than onw skin library? I think your approach will cause multiple
>> sigshadow_handler invocations (as the stack up due to library-local
>> pthread_once), while mine suffers from multiple xeno_sigwinch_handler
>> symbols. The latter might be solvable with __attribute__ ((weak)), correct?
>
> Yes, the pthread_once_t should be global with __attribute__((weak)), and
> we would get the proper behaviour for the proposed implementation too.
>
OK.
Nevertheless, the installation on thread creation remains fragile, IMHO.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]
next prev parent reply other threads:[~2008-10-19 11:22 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-18 14:22 [Xenomai-core] [PATCH 1/1] Use SIGWINCH to trigger priority change in user-space Gilles Chanteperdrix
2008-10-18 14:35 ` Gilles Chanteperdrix
2008-10-18 17:09 ` Philippe Gerum
2008-10-19 15:21 ` Gilles Chanteperdrix
2008-10-19 11:10 ` Jan Kiszka
2008-10-19 11:19 ` Gilles Chanteperdrix
2008-10-19 11:22 ` Jan Kiszka [this message]
2008-10-19 11:28 ` Gilles Chanteperdrix
2008-10-19 16:09 ` Philippe Gerum
2008-10-19 16:14 ` Philippe Gerum
2008-10-19 16:16 ` Gilles Chanteperdrix
2008-10-19 16:23 ` Gilles Chanteperdrix
2008-10-19 16:37 ` Philippe Gerum
2008-10-20 8:25 ` Gilles Chanteperdrix
2008-10-20 8:40 ` Jan Kiszka
2008-10-20 18:57 ` Gilles Chanteperdrix
2008-10-20 19:00 ` Jan Kiszka
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=48FB1891.3060609@domain.hid \
--to=jan.kiszka@domain.hid \
--cc=Xenomai-core@domain.hid \
--cc=gilles.chanteperdrix@xenomai.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.