diff options
author | David Robillard <d@drobilla.net> | 2015-02-06 22:55:30 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2015-02-06 22:55:30 +0000 |
commit | 10669b73136183f70057917af311dadad46588b7 (patch) | |
tree | 6d81c015f9ab292f5d21b219504f28fdb027630f /src/server/events/Delta.cpp | |
parent | 8fb76ad09c062055170666de28661bd9da25f98e (diff) | |
download | ingen-10669b73136183f70057917af311dadad46588b7.tar.gz ingen-10669b73136183f70057917af311dadad46588b7.tar.bz2 ingen-10669b73136183f70057917af311dadad46588b7.zip |
Remove gthread dependency from engine.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5533 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/events/Delta.cpp')
-rw-r--r-- | src/server/events/Delta.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp index f1acbdc2..23285b9b 100644 --- a/src/server/events/Delta.cpp +++ b/src/server/events/Delta.cpp @@ -15,8 +15,7 @@ */ #include <vector> - -#include <glibmm/thread.h> +#include <thread> #include "ingen/Store.hpp" #include "ingen/URIs.hpp" @@ -63,7 +62,7 @@ Delta::Delta(Engine& engine, , _compiled_graph(NULL) , _context(context) , _type(type) - , _poly_lock(engine.store()->lock(), Glib::NOT_LOCK) + , _poly_lock(engine.store()->mutex(), std::defer_lock) { if (context != Resource::Graph::DEFAULT) { for (auto& p : _properties) { @@ -107,7 +106,7 @@ Delta::pre_process() bool poly_changed = false; // Take a writer lock while we modify the store - Glib::RWLock::WriterLock lock(_engine.store()->lock()); + std::unique_lock<std::mutex> lock(_engine.store()->mutex()); _object = is_graph_object ? static_cast<Ingen::Resource*>(_engine.store()->get(Node::uri_to_path(_subject))) @@ -279,8 +278,8 @@ Delta::pre_process() } if (poly_changed) { - lock.release(); - _poly_lock.acquire(); + lock.unlock(); + _poly_lock.lock(); } return Event::pre_process_done( @@ -377,8 +376,8 @@ Delta::execute(ProcessContext& context) void Delta::post_process() { - if (_poly_lock.locked()) { - _poly_lock.release(); + if (_poly_lock.owns_lock()) { + _poly_lock.unlock(); } Broadcaster::Transfer t(*_engine.broadcaster()); |