summaryrefslogtreecommitdiff
path: root/src/signalController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/signalController.cpp')
-rw-r--r--src/signalController.cpp18
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) {