summaryrefslogtreecommitdiff
path: root/src/signalController.cpp
diff options
context:
space:
mode:
authorChristian Pointner <equinox@anytun.org>2009-03-05 12:15:07 +0000
committerChristian Pointner <equinox@anytun.org>2009-03-05 12:15:07 +0000
commitd25c95dfc3b3206b98c622a07dd9ecb3c6f091ac (patch)
treedcb4e734cea5daa4e349b9e15bcc6da1f78329f7 /src/signalController.cpp
parentadded retry capability to resolver (diff)
fixed daemonizing and boost::thread problem (workaround)
fixed signalController
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) {