[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).

-- 
Philippe.




More information about the Xenomai mailing list