fix signal-unsafe call inside of a signal

This commit is contained in:
badaix 2019-10-27 18:22:35 +01:00
parent f045602915
commit 1690f5ccc1
3 changed files with 41 additions and 48 deletions

View file

@ -40,9 +40,6 @@
#include "config.h"
volatile sig_atomic_t g_terminated = false;
std::condition_variable terminateSignaled;
using namespace std;
using namespace popl;
@ -201,10 +198,6 @@ int main(int argc, char* argv[])
settings.stream.pcmStreams.push_back(streamValue->value(n));
}
signal(SIGHUP, signal_handler);
signal(SIGTERM, signal_handler);
signal(SIGINT, signal_handler);
#ifdef HAS_DAEMON
std::unique_ptr<Daemon> daemon;
if (daemonOption->is_set())
@ -270,9 +263,8 @@ int main(int argc, char* argv[])
std::thread t([&] { io_context.run(); });
while (!g_terminated)
chronos::sleep(100);
auto sig = install_signal_handler({SIGHUP, SIGTERM, SIGINT}).get();
SLOG(INFO) << "Received signal " << sig << ": " << strsignal(sig) << "\n";
io_context.stop();
t.join();