summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/QueuedEventSource.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-01-06 19:39:56 +0000
committerDavid Robillard <d@drobilla.net>2007-01-06 19:39:56 +0000
commit69c5e7fe16b7d9d08db81a6d5e2762f0be3b081f (patch)
tree68fd1ea83beedaaaa97846ed09240a3585b2d931 /src/libs/engine/QueuedEventSource.cpp
parent2122a857662203936a04a39df7d0e1ad1db82853 (diff)
downloadingen-69c5e7fe16b7d9d08db81a6d5e2762f0be3b081f.tar.gz
ingen-69c5e7fe16b7d9d08db81a6d5e2762f0be3b081f.tar.bz2
ingen-69c5e7fe16b7d9d08db81a6d5e2762f0be3b081f.zip
Added ability to get Raul Thread for current calling context.
Strong threading assertions. Flowcanvas port removal fixes. Patch port destruction. Code cleanups, bug fixes. git-svn-id: http://svn.drobilla.net/lad/ingen@234 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/QueuedEventSource.cpp')
-rw-r--r--src/libs/engine/QueuedEventSource.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libs/engine/QueuedEventSource.cpp b/src/libs/engine/QueuedEventSource.cpp
index 08e1c63e..ea6f2c34 100644
--- a/src/libs/engine/QueuedEventSource.cpp
+++ b/src/libs/engine/QueuedEventSource.cpp
@@ -17,6 +17,7 @@
#include "QueuedEventSource.h"
#include "QueuedEvent.h"
#include "PostProcessor.h"
+#include "ThreadManager.h"
#include <sys/mman.h>
#include <iostream>
using std::cout; using std::cerr; using std::endl;
@@ -37,7 +38,8 @@ QueuedEventSource::QueuedEventSource(size_t queued_size, size_t stamped_size)
mlock(_events, _size * sizeof(QueuedEvent*));
- Thread::set_name("PreProcessor");
+ Thread::set_context(THREAD_PRE_PROCESS);
+ assert(context() == THREAD_PRE_PROCESS);
}
@@ -74,6 +76,8 @@ QueuedEventSource::push_queued(QueuedEvent* const ev)
void
QueuedEventSource::process(PostProcessor& dest, SampleCount nframes, FrameTime cycle_start, FrameTime cycle_end)
{
+ assert(ThreadManager::current_thread_id() == THREAD_PROCESS);
+
Event* ev = NULL;
/* Limit the maximum number of queued events to process per cycle. This
@@ -118,6 +122,8 @@ QueuedEventSource::process(PostProcessor& dest, SampleCount nframes, FrameTime c
Event*
QueuedEventSource::pop_earliest_queued_before(const SampleCount time)
{
+ assert(ThreadManager::current_thread_id() == THREAD_PROCESS);
+
QueuedEvent* const front_event = _events[_front];
// Pop