From 3f44dbd1d2924f001c45793e706a6217aa8aa471 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 19 Oct 2008 23:53:47 +0000 Subject: the signal controller uses boost thread now, however this code can only work as long boost thread uses pthread removed temporarly brocken anyrtpproxy from all target at make use make anyrtpproxy to build it replaced the pthread callbacks for libgcrypt with boost thread callbacks --- src/signalController.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/signalController.cpp') diff --git a/src/signalController.cpp b/src/signalController.cpp index ebd6897..cef743f 100644 --- a/src/signalController.cpp +++ b/src/signalController.cpp @@ -34,7 +34,8 @@ #include -//#include "threadUtils.hpp" +#include +#include "threadUtils.hpp" #include "signalController.h" #include "log.h" @@ -85,9 +86,10 @@ SignalController::~SignalController() { for(HandlerMap::iterator it = handler.begin(); it != handler.end(); ++it) delete it->second; + if(thread) delete thread; } -void* SignalController::handle(void *s) +void SignalController::handle(void *s) { SignalController* self = reinterpret_cast(s); sigset_t signal_set; @@ -103,7 +105,6 @@ void* SignalController::handle(void *s) } self->sigQueueSem.up(); } - pthread_exit(NULL); } void SignalController::init() @@ -115,10 +116,9 @@ void SignalController::init() sigdelset(&signal_set, SIGSEGV); sigdelset(&signal_set, SIGBUS); sigdelset(&signal_set, SIGFPE); - pthread_sigmask(SIG_BLOCK, &signal_set, NULL); + pthread_sigmask(SIG_BLOCK, &signal_set, NULL); // TODO: remove ugly workaround - pthread_create(&thread, NULL, handle, this); - pthread_detach(thread); + thread = new boost::thread(boost::bind(handle, this)); handler[SIGINT] = new SigIntHandler; handler[SIGQUIT] = new SigQuitHandler; -- cgit v1.2.3