diff options
author | Christian Pointner <equinox@anytun.org> | 2009-03-05 12:15:07 +0000 |
---|---|---|
committer | Christian Pointner <equinox@anytun.org> | 2009-03-05 12:15:07 +0000 |
commit | d25c95dfc3b3206b98c622a07dd9ecb3c6f091ac (patch) | |
tree | dcb4e734cea5daa4e349b9e15bcc6da1f78329f7 /src/signalController.cpp | |
parent | added 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.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) { |