diff options
Diffstat (limited to 'src/server/events/Delete.cpp')
-rw-r--r-- | src/server/events/Delete.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/server/events/Delete.cpp b/src/server/events/Delete.cpp index b1dc1558..4f13cd97 100644 --- a/src/server/events/Delete.cpp +++ b/src/server/events/Delete.cpp @@ -50,6 +50,7 @@ Delete::Delete(Engine& engine, , _ports_array(NULL) , _compiled_patch(NULL) , _disconnect_event(NULL) + , _lock(engine.engine_store()->lock(), Glib::NOT_LOCK) { assert(request); assert(request->source()); @@ -71,6 +72,8 @@ Delete::pre_process() return; } + _lock.acquire(); + _removed_bindings = _engine.control_bindings()->remove(_path); _store_iterator = _engine.engine_store()->find(_path); @@ -170,6 +173,7 @@ Delete::execute(ProcessContext& context) void Delete::post_process() { + _lock.release(); _removed_bindings.reset(); if (!Raul::Path::is_path(_uri) |