diff --git a/lib/c/labcomm_decoder.c b/lib/c/labcomm_decoder.c index bdf5f43c114a17f406ad5f874974a82cb554ae1d..7d657d7f0a103dd0f47ac9b870c459dbea390054 100644 --- a/lib/c/labcomm_decoder.c +++ b/lib/c/labcomm_decoder.c @@ -259,11 +259,13 @@ static void call_handler(void *value, void *context) { struct call_handler_context *wrap = context; - labcomm_reader_start(wrap->reader, wrap->reader->action_context, - wrap->local_index, wrap->remote_index, wrap->signature, - value); - wrap->handler(value, wrap->context); - labcomm_reader_end(wrap->reader, wrap->reader->action_context); + if (wrap->reader->error >= 0) { + labcomm_reader_start(wrap->reader, wrap->reader->action_context, + wrap->local_index, wrap->remote_index, wrap->signature, + value); + wrap->handler(value, wrap->context); + labcomm_reader_end(wrap->reader, wrap->reader->action_context); + } } static void reader_alloc(struct labcomm_decoder *d)