From 9085d33b7600fd2721f0a2401a4e69830c457f84 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 24 Sep 2011 04:52:23 +0000 Subject: Remove concept of "blocking" events in favour of store RWLock. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3488 a436a847-0d15-0410-975c-d299462d15a1 --- src/server/events/Disconnect.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src/server/events/Disconnect.cpp') diff --git a/src/server/events/Disconnect.cpp b/src/server/events/Disconnect.cpp index e7177fab..de078c3f 100644 --- a/src/server/events/Disconnect.cpp +++ b/src/server/events/Disconnect.cpp @@ -15,10 +15,12 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "raul/log.hpp" +#include + #include "raul/Maid.hpp" #include "raul/Path.hpp" -#include "events/Disconnect.hpp" +#include "raul/log.hpp" + #include "AudioBuffer.hpp" #include "ClientBroadcaster.hpp" #include "ConnectionImpl.hpp" @@ -32,6 +34,7 @@ #include "ProcessContext.hpp" #include "Request.hpp" #include "ThreadManager.hpp" +#include "events/Disconnect.hpp" using namespace std; using namespace Raul; @@ -40,12 +43,11 @@ namespace Ingen { namespace Server { namespace Events { -Disconnect::Disconnect( - Engine& engine, - SharedPtr request, - SampleCount timestamp, - const Raul::Path& src_port_path, - const Raul::Path& dst_port_path) +Disconnect::Disconnect(Engine& engine, + SharedPtr request, + SampleCount timestamp, + const Raul::Path& src_port_path, + const Raul::Path& dst_port_path) : QueuedEvent(engine, request, timestamp) , _src_port_path(src_port_path) , _dst_port_path(dst_port_path) @@ -113,6 +115,8 @@ Disconnect::Impl::Impl(Engine& e, void Disconnect::pre_process() { + Glib::RWLock::WriterLock lock(_engine.engine_store()->lock()); + if (_src_port_path.parent().parent() != _dst_port_path.parent().parent() && _src_port_path.parent() != _dst_port_path.parent().parent() && _src_port_path.parent().parent() != _dst_port_path.parent()) { -- cgit v1.2.1