Boost logo

Boost :

Subject: [boost] extending asio with unix signal handlers
From: Dmitry Goncharov (dgoncharov_at_[hidden])
Date: 2009-03-19 04:55:27


Hi,

What do you think of extending asio with unix signal handling?
The extension lets the library user to have a handler invoked when a
unix signal arrives.

void on_signal(boost::system::error_code const& error)
{
    if (!error)
        cout << "sigint received" << endl;
}

int main(int argc, char const* argv[])
{
    boost::asio::io_service ios;
    boost::asio::posix::signal_handler<SIGINT> sigint(ios);
    while (true)
    {
        ios.reset();
        sigint.async_wait(boost::bind(on_signal, _1));
        ios.poll();
    }
}
 
This lets the user have a unix signal handler of an arbitrary signature.
This also removes the "async-signal safe calls" restriction.

Please, find the implementation along with two examples enclosed.

BR, Dmitry







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