From 177f2b48b6516ba4dee70a709ce28105f1092de2 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 18 May 2011 17:45:39 +0000 Subject: Use an intrusive linked list for event queue rather than Raul::List. This avoids the need to allocate list nodes, improving performance (event throughput), and making EventSource::push_queued realtime safe. Remove unused queue_size parameter from EventSource and friends. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3282 a436a847-0d15-0410-975c-d299462d15a1 --- src/server/Event.hpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/server/Event.hpp') diff --git a/src/server/Event.hpp b/src/server/Event.hpp index af39bfa4..e915631a 100644 --- a/src/server/Event.hpp +++ b/src/server/Event.hpp @@ -19,9 +19,12 @@ #define INGEN_ENGINE_EVENT_HPP #include + #include "raul/SharedPtr.hpp" #include "raul/Deletable.hpp" #include "raul/Path.hpp" +#include "raul/AtomicPtr.hpp" + #include "types.hpp" namespace Ingen { @@ -56,6 +59,10 @@ public: inline SampleCount time() const { return _time; } + /** Get the next event in the event process list. */ + Event* next() const { return _next.get(); } + void next(Event* ev) { _next = ev; } + int error() { return _error; } protected: @@ -67,11 +74,12 @@ protected: , _executed(false) {} - Engine& _engine; - SharedPtr _request; - FrameTime _time; - int _error; - bool _executed; + Engine& _engine; + SharedPtr _request; + Raul::AtomicPtr _next; + FrameTime _time; + int _error; + bool _executed; }; } // namespace Server -- cgit v1.2.1