X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=signalhandler.cpp;h=a236535ce1c6fe35724136e2ce5404b8c4f2fd5a;hp=f136a5234281038a4e4daec3fd61658193966f73;hb=2b334bb4078d6e74e8ed4e3460c6596344dd9c8d;hpb=708605aa2c4ac7bbdaa3b2b539911f0d5ede1baf diff --git a/signalhandler.cpp b/signalhandler.cpp index f136a523..a236535c 100644 --- a/signalhandler.cpp +++ b/signalhandler.cpp @@ -20,10 +20,13 @@ #include "signalhandler.h" +#include #include +#include #include #include +#include #include int SignalHandler::_sockets[2]; @@ -63,15 +66,19 @@ void SignalHandler::on_socket_notifier_activated() _socket_notifier->setEnabled(false); int sig_number; - read(_sockets[1], &sig_number, sizeof(int)); + if(read(_sockets[1], &sig_number, sizeof(int)) != + sizeof(int)) { + qDebug() << "Failed to catch signal"; + abort(); + } switch(sig_number) { case SIGINT: - emit int_received(); + Q_EMIT int_received(); break; case SIGTERM: - emit term_received(); + Q_EMIT term_received(); break; } @@ -80,5 +87,9 @@ void SignalHandler::on_socket_notifier_activated() void SignalHandler::handle_signals(int sig_number) { - write(_sockets[0], &sig_number, sizeof(int)); + if(write(_sockets[0], &sig_number, sizeof(int)) != + sizeof(int)) { + // Failed to handle signal + abort(); + } }