aboutsummaryrefslogtreecommitdiffstats
path: root/src/worker.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/worker.c')
-rw-r--r--src/worker.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/worker.c b/src/worker.c
index 7f502e1..b062723 100644
--- a/src/worker.c
+++ b/src/worker.c
@@ -15,8 +15,13 @@
static LV2_Worker_Status
jalv_worker_write_packet(ZixRing* const target, uint32_t size, const void* data)
{
- zix_ring_write(target, (const char*)&size, sizeof(size));
- zix_ring_write(target, (const char*)data, size);
+ ZixRingTransaction tx = zix_ring_begin_write(target);
+ if (zix_ring_amend_write(target, &tx, &size, sizeof(size)) ||
+ zix_ring_amend_write(target, &tx, data, size)) {
+ return LV2_WORKER_ERR_NO_SPACE;
+ }
+
+ zix_ring_commit_write(target, &tx);
return LV2_WORKER_SUCCESS;
}