uloop: improve edge trigger reliability on mac os x
[project/libubox.git] / ustream.c
index 9c14678..719af99 100644 (file)
--- a/ustream.c
+++ b/ustream.c
@@ -37,6 +37,7 @@ static void ustream_init_buf(struct ustream_buf *buf, int len)
 
 static void ustream_add_buf(struct ustream_buf_list *l, struct ustream_buf *buf)
 {
+       l->buffers++;
        if (!l->tail)
                l->head = buf;
        else
@@ -341,7 +342,7 @@ bool ustream_write_pending(struct ustream *s)
        if (s->write_error)
                return false;
 
-       while (buf) {
+       while (buf && s->w.data_bytes) {
                struct ustream_buf *next = buf->next;
                int maxlen = buf->tail - buf->data;