aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-08-10 12:52:18 -0400
committerDavid Robillard <d@drobilla.net>2022-08-17 13:50:57 -0400
commitcc5527981ecc76398ec57097e79d5662e7b98151 (patch)
treefcb0a8b7807efa51e4e042b449e2f1c405548d38
parente67d8439326d886315ccddd2d7a842df0c45359f (diff)
downloadjalv-cc5527981ecc76398ec57097e79d5662e7b98151.tar.gz
jalv-cc5527981ecc76398ec57097e79d5662e7b98151.tar.bz2
jalv-cc5527981ecc76398ec57097e79d5662e7b98151.zip
Propagate worker errors to the scheduler when possible
-rw-r--r--NEWS3
-rw-r--r--src/worker.c7
2 files changed, 6 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index d01b9ae..105a617 100644
--- a/NEWS
+++ b/NEWS
@@ -15,11 +15,12 @@ jalv (1.6.7) unstable; urgency=medium
* Fix spurious transport messages
* Flush stdout after printing control values in console interface
* Print status information consistently to stdout
+ * Propagate worker errors to the scheduler when possible
* Remove Gtkmm interface
* Remove Qt4 support
* Switch to meson build system
- -- David Robillard <d@drobilla.net> Wed, 10 Aug 2022 16:17:35 +0000
+ -- David Robillard <d@drobilla.net> Wed, 10 Aug 2022 16:51:40 +0000
jalv (1.6.6) stable; urgency=medium
diff --git a/src/worker.c b/src/worker.c
index c7b7143..a9474a7 100644
--- a/src/worker.c
+++ b/src/worker.c
@@ -93,7 +93,8 @@ jalv_worker_schedule(LV2_Worker_Schedule_Handle handle,
uint32_t size,
const void* data)
{
- JalvWorker* worker = (JalvWorker*)handle;
+ JalvWorker* worker = (JalvWorker*)handle;
+ LV2_Worker_Status st = LV2_WORKER_SUCCESS;
if (!size) {
return LV2_WORKER_ERR_UNKNOWN;
@@ -107,12 +108,12 @@ jalv_worker_schedule(LV2_Worker_Schedule_Handle handle,
} else {
// Execute work immediately in this thread
zix_sem_wait(worker->lock);
- worker->iface->work(
+ st = worker->iface->work(
worker->handle, jalv_worker_respond, worker, size, data);
zix_sem_post(worker->lock);
}
- return LV2_WORKER_SUCCESS;
+ return st;
}
void