aboutsummaryrefslogtreecommitdiffstats
path: root/src/worker.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/worker.c')
-rw-r--r--src/worker.c33
1 files changed, 7 insertions, 26 deletions
diff --git a/src/worker.c b/src/worker.c
index 8cb09d1..c37c740 100644
--- a/src/worker.c
+++ b/src/worker.c
@@ -129,36 +129,17 @@ void
jalv_worker_emit_responses(JalvWorker* worker, LilvInstance* instance)
{
if (worker->responses) {
- uint32_t read_space = 0;
- while (read_space = zix_ring_read_space(worker->responses)) {
+ uint32_t read_space = zix_ring_read_space(worker->responses);
+ while (read_space) {
uint32_t size = 0;
- if (zix_ring_peek(worker->responses, (char*)&size, sizeof(size)) <= 0) {
- fprintf(stderr, "error: Response buffer corrupted (req %lu avail %u)\n",
- sizeof(size), read_space);
- break;
- }
-
- const uint32_t packet_size = sizeof(size) + size;
- if (read_space < packet_size) {
- fprintf(stderr, "warning: Try to read bigger response (%u) than data available (%u). Retry later.\n",
- packet_size, read_space);
- break;
- }
-
- if (zix_ring_skip(worker->responses, sizeof(size)) <= 0) {
- fprintf(stderr, "error: Response buffer corrupted on skip (req %lu avail %u)\n",
- sizeof(size), read_space);
- break;
- }
-
- if (zix_ring_read(worker->responses, (char*)worker->response, size) <= 0) {
- fprintf(stderr, "error: Response buffer corrupted on read response (req %u avail %u)\n",
- size, zix_ring_read_space(worker->responses));
- break;
- }
+ zix_ring_read(worker->responses, (char*)&size, sizeof(size));
+
+ zix_ring_read(worker->responses, (char*)worker->response, size);
worker->iface->work_response(
instance->lv2_handle, size, worker->response);
+
+ read_space -= sizeof(size) + size;
}
}
}