blocking canceled in entrypoint constructor

Johannes Kliemann kliemann at ...543...
Tue Jan 16 14:59:17 CET 2018


Hi Christian,

thanks for these hints. I have logged the signals and SIGCHLD is
received directly before the occurrence of the warning so I suspect that
this is the problematic signal.
I also set up a signal handler to catch all other signals and it only
logged the according signal number.

Regards,
Johannes

Am 12.01.2018 um 16:32 schrieb Christian Helmuth:
> Hello Johannes,
> 
> On Fri, Jan 12, 2018 at 01:09:25PM +0100, Johannes Kliemann wrote:
>> Why does Genode handle -EINTR with an exception and not the way proposed
>> in the GNU manual?
> 
> We use the Linux signal mechanism with signal SIGUSR1 to implement our
> cancelable lock. So, if a thread is unblocked with the EINTR error it
> reflects the cancellation by throwing this exception. Core's initial
> thread is unblocked only once by this mechanism and then blocks in
> 
>   ./base/src/core/signal_receiver.cc:41:void Signal_receiver::block_for_signal()
> 
> Did you find out which signal occurred in core? We setup several
> signal handlers for fatal signals (e.g., SIGSEGV) that log diagnostic
> info and also
> 
>   src/core/thread_linux.cc:45    SIGUSR1
>   ./src/core/platform.cc:95      SIGINT
>   ./src/core/platform.cc:98      SIGCHLD
> 
> You could try to setup more handlers this way and log signal
> occurrence.
> 
> Cheers
> 




More information about the users mailing list