summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/server/LV2Block.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/server/LV2Block.cpp b/src/server/LV2Block.cpp
index 7dcfb362..309b68da 100644
--- a/src/server/LV2Block.cpp
+++ b/src/server/LV2Block.cpp
@@ -554,8 +554,9 @@ LV2Block::run(RunContext& context)
void
LV2Block::post_process(RunContext& context)
{
- BlockImpl::post_process(context);
-
+ /* Handle any worker responses. Note that this may write to output ports,
+ so must be done first to prevent clobbering worker responses and
+ monitored notification ports. */
if (_worker_iface) {
LV2_Handle inst = lilv_instance_get_handle(instance(0));
while (!_responses.empty()) {
@@ -569,6 +570,9 @@ LV2Block::post_process(RunContext& context)
_worker_iface->end_run(inst);
}
}
+
+ /* Run cycle truly finished, finalise output ports. */
+ BlockImpl::post_process(context);
}
LilvState*