diff options
Diffstat (limited to 'src/server/Engine.cpp')
-rw-r--r-- | src/server/Engine.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/server/Engine.cpp b/src/server/Engine.cpp index 6e61f463..1a9d82b0 100644 --- a/src/server/Engine.cpp +++ b/src/server/Engine.cpp @@ -99,7 +99,9 @@ Engine::Engine(Ingen::World* world) _control_bindings = new ControlBindings(*this); for (int i = 0; i < world->conf().option("threads").get<int32_t>(); ++i) { - _run_contexts.push_back(new RunContext(*this, i, i > 0)); + Raul::RingBuffer* ring = new Raul::RingBuffer(24 * event_queue_size()); + _notifications.push_back(ring); + _run_contexts.push_back(new RunContext(*this, ring, i, i > 0)); } _world->lv2_features().add_feature(_worker->schedule_feature()); @@ -149,6 +151,13 @@ Engine::~Engine() _post_processor->process(); } + for (RunContext* ctx : _run_contexts) { + delete ctx; + } + for (Raul::RingBuffer* ring : _notifications) { + delete ring; + } + const SPtr<Store> store = this->store(); if (store) { for (auto& s : *store.get()) { |