diff options
Diffstat (limited to 'src/signalController.cpp')
-rw-r--r-- | src/signalController.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/signalController.cpp b/src/signalController.cpp index 12893ca..2ae5791 100644 --- a/src/signalController.cpp +++ b/src/signalController.cpp @@ -160,18 +160,13 @@ void SignalController::handle() { sigfillset(&signal_set); sigwait(&signal_set, &sigNum); - { - Lock lock(sigQueueMutex); - sigQueue.push(sigNum); - } - sigQueueSem.up(); + inject(sigNum); } } #else bool SignalController::handle(DWORD ctrlType) { - gSignalController.sigQueue.push(ctrlType); - gSignalController.sigQueueSem.up(); + gSignalController.inject(ctrlType); return true; } #endif @@ -213,6 +208,15 @@ void SignalController::init() #endif } +void SignalController::inject(int sig) +{ + { + Lock lock(sigQueueMutex); + sigQueue.push(sig); + } + sigQueueSem.up(); +} + int SignalController::run() { while(1) { |