[Xenomai] EINTR in notifier.c (mercury)

Philippe Gerum rpm at xenomai.org
Mon Mar 31 15:18:41 CEST 2014

On 03/31/2014 01:27 PM, Gilles Chanteperdrix wrote:
> On 03/31/2014 12:34 PM, Matthias Schneider wrote:
>> Hi all,
>> still working on thread suspension in mercury, I noticed that some
>> threadobj_suspend() and threadobj_resume() calls seemed not to have the desired
>> effect. Analyzing the issue, I found out that sometimes the read operations on
>> the pipe in notifier_wait() seem to return with EINTR, especially in
>> heavily loaded systems. Restarting the read system call in that case made
>> thread suspension a lot more reliable in my case.
>> I have attached a patch adding loops to deal with the EINTR situation in all
> You can probably avoid testing for EINTR if all signal handlers are
> registered with the SA_RESTART flag.

The app may not explicitly care for signals (granted, most would do, but 
we would then have to assume they do it right).


More information about the Xenomai mailing list