Boost logo

Boost :

Subject: Re: [boost] Boost.Process 0.5 released
From: Boris Schaeling (boris_at_[hidden])
Date: 2012-08-21 18:35:52


On Sun, 19 Aug 2012 23:21:00 +0200, Oliver Kowalke <oliver.kowalke_at_[hidden]>
wrote:

Hi Oliver,

> How is asynch. signal handling done?
>
> int status; boost::asio::signal_set set(io_service, SIGCHLD);
> set.async_wait( [&status](const boost::system::error_code&, int) {
> ::wait(&status); } );
>
> Please note that on POSIX you are limited on what you can do inside a
> signal handler (must not call non-reentrant functions)!
> I suggest you do not invoke the callback from the user in the signal
> handler - instead you set inside the signal handler a flag indicating
> the io-demultiplexer (io_service) to call the associated callback if you
> have returned from the signal handler (io_service has to continue with
> dispatching).

I'm not sure whether I understand. Is this a general recommendation for
others? Or you think there is something wrong with the code from the
example?

Boris


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk