X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=lib%2Fiterator.c;fp=lib%2Fiterator.c;h=3280f4a816c3a88468dfb99dd320111c24ded54d;hp=155fcbe6f7382a332ba3967e0cde86b21f5b40f7;hb=b5f5f9e1854297ddff94aa9e210dbf865e0edcfa;hpb=a52600470ad14e59cba2e17de3df3f3f336b1adb diff --git a/lib/iterator.c b/lib/iterator.c index 155fcbe6..3280f4a8 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; }