, _requests(new RingBuffer<uint8_t>(ring_size))
, _responses(new RingBuffer<uint8_t>(ring_size))
, _response((uint8_t*)malloc(ring_size))
- , _sem(0)
+ , _sem ("worker_semaphore", 0)
, _exit(false)
, _thread (Glib::Threads::Thread::create(sigc::mem_fun(*this, &Worker::run)))
{}
Worker::~Worker()
{
_exit = true;
- _sem.post();
+ _sem.signal();
_thread->join();
}
if (_requests->write((const uint8_t*)data, size) != size) {
return false;
}
- _sem.post();
+ _sem.signal();
return true;
}