From mboxrd@z Thu Jan 1 00:00:00 1970 From: jdesfossez@efficios.com (Julien Desfossez) Date: Wed, 27 Nov 2013 10:06:03 -0500 Subject: [lttng-dev] [BABELTRACE PATCH 3/3] Handle empty streams on iterator init In-Reply-To: <1385564763-1374-1-git-send-email-jdesfossez@efficios.com> References: <1385564763-1374-1-git-send-email-jdesfossez@efficios.com> Message-ID: <1385564763-1374-3-git-send-email-jdesfossez@efficios.com> In live trace streaming, we can create an iterator with inactive streams. This patch allows inactive streams to be considered as valid. Signed-off-by: Julien Desfossez --- lib/iterator.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/iterator.c b/lib/iterator.c index 155fcbe..3280f4a 100644 --- a/lib/iterator.c +++ b/lib/iterator.c @@ -725,7 +725,7 @@ int bt_iter_init(struct bt_iter *iter, if (ret == EOF) { ret = 0; continue; - } else if (ret) { + } else if (ret != 0 && ret != EAGAIN) { goto error; } /* Add to heap */ @@ -821,6 +821,13 @@ reinsert: removed = bt_heap_replace_max(iter->stream_heap, file_stream); assert(removed == file_stream); + file_stream = bt_heap_maximum(iter->stream_heap); + if (file_stream->pos.content_size == 0) { + ret = EAGAIN; + } else { + ret = 0; + } + end: return ret; } -- 1.8.3.2