Updates from BitShares FC #22

Closed
nathanielhourt wants to merge 693 commits from dapp-support into latest-fc
2 changed files with 17 additions and 13 deletions
Showing only changes of commit 635cbc24e7 - Show all commits

View file

@ -1,8 +1,11 @@
#pragma once
#include <functional>
#include <boost/asio/signal_set.hpp>
namespace fc
{
/// handler will be called from ASIO thread
void set_signal_handler( std::function<void(int)> handler, int signal_num );
/// Set a handler to process an IPC (inter process communication) signal.
/// Handler will be called from ASIO thread.
/// @return shared pointer to the signal_set that holds the handler
std::shared_ptr<boost::asio::signal_set> set_signal_handler( std::function<void(int)> handler, int signal_num );
}

View file

@ -3,15 +3,16 @@
namespace fc
{
void set_signal_handler( std::function<void(int)> handler, int signal_num )
{
std::shared_ptr<boost::asio::signal_set> sig_set(new boost::asio::signal_set(fc::asio::default_io_service(), signal_num));
sig_set->async_wait(
[sig_set,handler]( const boost::system::error_code& err, int num )
{
handler( num );
sig_set->cancel();
// set_signal_handler( handler, signal_num );
} );
}
std::shared_ptr<boost::asio::signal_set> set_signal_handler( std::function<void(int)> handler, int signal_num )
{
std::shared_ptr<boost::asio::signal_set> sig_set( new boost::asio::signal_set( fc::asio::default_io_service(),
signal_num) );
sig_set->async_wait( [sig_set,handler]( const boost::system::error_code& err, int num )
{
if( err != boost::asio::error::operation_aborted )
handler( num );
sig_set->cancel();
} );
return sig_set;
}
}