summaryrefslogtreecommitdiff
path: root/src/threadsafe_queue_fifo.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/threadsafe_queue_fifo.cc')
-rw-r--r--src/threadsafe_queue_fifo.cc38
1 files changed, 15 insertions, 23 deletions
diff --git a/src/threadsafe_queue_fifo.cc b/src/threadsafe_queue_fifo.cc
index 633cb58..50c1067 100644
--- a/src/threadsafe_queue_fifo.cc
+++ b/src/threadsafe_queue_fifo.cc
@@ -26,10 +26,9 @@
*/
#include "config.h"
#include "threadsafe_queue_fifo.h"
-/*
+
template <typename T>
ThreadSafeQueueFIFO<T>::ThreadSafeQueueFIFO()
- // : ThreadSafeQueue<T>()
{
}
@@ -41,29 +40,25 @@ ThreadSafeQueueFIFO<T>::~ThreadSafeQueueFIFO()
template <typename T>
void ThreadSafeQueueFIFO<T>::push(T t)
{
- // Lock mutex
- pthread_mutex_lock( &mutex );
+ mutex.lock();
queue.push(t);
- pthread_mutex_unlock( &mutex );
- // Unlock mutex
-
- sem_post(&semaphore);
+ mutex.unlock();
+
+ semaphore.post();
}
template <typename T>
T ThreadSafeQueueFIFO<T>::pop()
{
- sem_wait(&semaphore);
-
+ semaphore.wait();
+
T t;
-
- // Lock mutex
- pthread_mutex_lock( &mutex );
+
+ mutex.lock();
t = queue.front();
queue.pop();
- pthread_mutex_unlock( &mutex );
- // Unlock mutex
-
+ mutex.unlock();
+
return t;
}
@@ -71,13 +66,10 @@ template <typename T>
int ThreadSafeQueueFIFO<T>::size()
{
int sz;
-
- // Lock mutex
- pthread_mutex_lock( &mutex );
+
+ mutex.lock();
sz = queue.size();
- pthread_mutex_unlock( &mutex );
- // Unlock mutex
-
+ mutex.unlock();
+
return sz;
}
-*/