Обработчик должен быть вызван, когда происходит сигнал. Копии будут сделаны из обработчика по мере необходимости. Функциональная подпись обработчика должна быть:
voidhandler(constboost::system::error_code&error,// Result of operation.intsignal_number// Indicates which signal occurred.);
Независимо от того, выполняется ли асинхронная операция немедленно или нет, обработчик не будет вызываться из этой функции. Вызов обработчика будет выполнен способом, эквивалентным использованию boost::asio::io_service::post().
Статья basic_signal_set::async_wait раздела Boost.Asio basic_signal_set может быть полезна для разработчиков на c++ и boost.