[lttng-dev] [BABELTRACE PATCH 3/3] Handle empty streams on iterator init
Julien Desfossez
jdesfossez at efficios.com
Wed Nov 27 11:40:12 EST 2013
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 <jdesfossez at efficios.com>
---
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
More information about the lttng-dev
mailing list