From 6fc1fa0d3bec4b82cb3af4c4e887241087899e7e Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 22 Jan 2007 04:07:53 +0000 Subject: Added atomic int/pointer classes to Raul. Added multi-writer queue to Raul. Renamed Queue SRSWQueue (single-reader single-writer). Updated patchage/ingen for Raul changes. git-svn-id: http://svn.drobilla.net/lad/ingen@264 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/engine/QueuedEventSource.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/libs/engine/QueuedEventSource.h') diff --git a/src/libs/engine/QueuedEventSource.h b/src/libs/engine/QueuedEventSource.h index db003a92..077cf7f2 100644 --- a/src/libs/engine/QueuedEventSource.h +++ b/src/libs/engine/QueuedEventSource.h @@ -21,7 +21,7 @@ #include #include "types.h" #include "raul/Semaphore.h" -#include "raul/Queue.h" +#include "raul/SRSWQueue.h" #include "raul/Slave.h" #include "Event.h" #include "EventSource.h" @@ -80,7 +80,7 @@ private: Semaphore _blocking_semaphore; /** Queue for timestamped events (no pre-processing). */ - Queue _stamped_queue; + SRSWQueue _stamped_queue; }; @@ -93,9 +93,14 @@ private: inline Event* QueuedEventSource::pop_earliest_stamped_before(const SampleCount time) { - if (!_stamped_queue.is_empty() && _stamped_queue.front()->time() < time) - return _stamped_queue.pop(); - return NULL; + Event* ret = NULL; + + if (!_stamped_queue.empty() && _stamped_queue.front()->time() < time) { + ret = _stamped_queue.front(); + _stamped_queue.pop(); + } + + return ret; } -- cgit v1.2.1