[Xenomai] syncobj_wait_grant vs. signals

Jan Kiszka jan.kiszka at siemens.com
Tue May 29 10:43:11 CEST 2018


On 2018-05-29 09:31, Philippe Gerum wrote:
> On 05/28/2018 08:51 PM, Jan Kiszka wrote:
>> Hi Philippe,
>>
>> struggling with an internal implementation on top of copperplate's
>> syncobj_wait_grant, I was wondering if that function is supposed to
>> return -EINTR on signal interruptions. It's mercury variant will not
>> because it used pthread_cond_wait internally. The cobalt version does,
>> and now I need to decide where to handle that best.
>>
> 
> The only requirement is to have EINTR honored by wait_grant/wait_drain
> calls upon syncobj_flush().
> 
> The reason the Cobalt side returns EINTR also on Linux signals is due to
> cobalt_monitor_wait() not implementing the prologue/epilogue functional
> split pthread_cond_wait() exhibits, which allows to filter out EINTR in
> order to match the POSIX spec.

Do you think it's worth changing that? It's trivial to catch downstream,
at the caller site, with a while loop but if more callers than mine
would like to have that, a central fix would be better.

Jan

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux



More information about the Xenomai mailing list