diff options
Diffstat (limited to 'src/server/Worker.cpp')
-rw-r--r-- | src/server/Worker.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/server/Worker.cpp b/src/server/Worker.cpp index 8afc8a20..ce7ba833 100644 --- a/src/server/Worker.cpp +++ b/src/server/Worker.cpp @@ -101,28 +101,26 @@ Worker::Schedule::feature(World* world, Node* n) } Worker::Worker(Log& log, uint32_t buffer_size) - : Raul::Thread() - , _schedule(new Schedule()) + : _schedule(new Schedule()) , _log(log) , _sem(0) , _requests(buffer_size) , _responses(buffer_size) , _buffer((uint8_t*)malloc(buffer_size)) , _buffer_size(buffer_size) -{ - start(); -} + , _thread(&Worker::run, this) +{} Worker::~Worker() { _exit_flag = true; _sem.post(); - join(); + _thread.join(); free(_buffer); } void -Worker::_run() +Worker::run() { while (_sem.wait() && !_exit_flag) { MessageHeader msg; |