X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fconsumer%2Fconsumer.c;fp=src%2Fcommon%2Fconsumer%2Fconsumer.c;h=4519944e851f10e4f04e083a73302349eb51feae;hp=26fc819f6ee64c6d572ff2012ec1d1ff25922434;hb=b6797c8e4aeb3f7c33be9726ab33655e7667e07e;hpb=6e5e3c512dd7c4ead8ce89bff2de1a56a6d5e360 diff --git a/src/common/consumer/consumer.c b/src/common/consumer/consumer.c index 26fc819f6..4519944e8 100644 --- a/src/common/consumer/consumer.c +++ b/src/common/consumer/consumer.c @@ -3382,6 +3382,7 @@ ssize_t lttng_consumer_read_subbuffer(struct lttng_consumer_stream *stream, ssize_t ret, written_bytes = 0; int rotation_ret; struct stream_subbuffer subbuffer = {}; + enum get_next_subbuffer_status get_next_status; if (!locked_by_caller) { stream->read_subbuffer_ops.lock(stream); @@ -3407,14 +3408,20 @@ ssize_t lttng_consumer_read_subbuffer(struct lttng_consumer_stream *stream, } } - ret = stream->read_subbuffer_ops.get_next_subbuffer(stream, &subbuffer); - if (ret) { - if (ret == -ENODATA) { - /* Not an error. */ - ret = 0; - goto sleep_stream; - } + get_next_status = stream->read_subbuffer_ops.get_next_subbuffer( + stream, &subbuffer); + switch (get_next_status) { + case GET_NEXT_SUBBUFFER_STATUS_OK: + break; + case GET_NEXT_SUBBUFFER_STATUS_NO_DATA: + /* Not an error. */ + ret = 0; + goto sleep_stream; + case GET_NEXT_SUBBUFFER_STATUS_ERROR: + ret = -1; goto end; + default: + abort(); } ret = stream->read_subbuffer_ops.pre_consume_subbuffer(