diff options
Diffstat (limited to 'src/server/RunContext.cpp')
-rw-r--r-- | src/server/RunContext.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/server/RunContext.cpp b/src/server/RunContext.cpp index b2e3f269..5d5c9e33 100644 --- a/src/server/RunContext.cpp +++ b/src/server/RunContext.cpp @@ -18,6 +18,7 @@ #include "ingen/Log.hpp" #include "ingen/URIMap.hpp" +#include "BlockImpl.hpp" #include "Broadcaster.hpp" #include "BufferFactory.hpp" #include "Engine.hpp" @@ -141,20 +142,26 @@ RunContext::emit_notifications(FrameTime end) } void -RunContext::claim_task(Task* task) +RunContext::claim_task(BlockTask* task) { if ((_task = task)) { _engine.signal_tasks_available(); } } -Task* +RunContext::BlockTask* RunContext::steal_task() const { return _engine.steal_task(_id + 1); } void +RunContext::run_unit(BlockImpl* unit) +{ + unit->process(*this); +} + +void RunContext::set_priority(int priority) { if (_thread) { @@ -185,7 +192,7 @@ void RunContext::run() { while (_engine.wait_for_tasks()) { - for (Task* t; (t = _engine.steal_task(0));) { + for (BlockTask* t; (t = _engine.steal_task(0));) { t->run(*this); } } |