aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/Engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/Engine.cpp')
-rw-r--r--src/engine/Engine.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp
index fede33f..2b4088e 100644
--- a/src/engine/Engine.cpp
+++ b/src/engine/Engine.cpp
@@ -30,11 +30,16 @@ namespace Machina {
SharedPtr<Machine>
Engine::load_machine(const Glib::ustring& uri)
{
+ SharedPtr<Machine> old_machine = _driver->machine(); // Hold a reference to current machine..
+
SharedPtr<Machine> m = Loader().load(uri);
if (m) {
m->activate();
_driver->set_machine(m);
}
+
+ // .. and drop it in this thread (to prevent deallocation in the RT thread)
+
return m;
}