В процессе многопоточного процесса Linux OS сигнал не гарантированно доставить в конкретный поток. Является ли эта асинхронная операция гарантированно завершена?
Тест ниже показывает, что оба потока получают один и тот же сигнал.
Так что ответ на последний вопрос может быть да. /> Я не могу найти документы, описывая это поведение < /p>
#include
#include
namespace asio = boost::asio;
using error_code = boost::system::error_code;
class SignalHandler {
public:
SignalHandler(asio::io_context& io_context) : signals_(io_context, SIGINT, SIGTERM) { start_wait(); }
private:
void start_wait() {
signals_.async_wait([this](error_code ec, int signal_number) {
std::cout
Подробнее здесь: https://stackoverflow.com/questions/797 ... -scenarios