consumerd: on_sleep not called on stream when no data is available
[lttng-tools.git] / src / common / consumer / consumer.c
index 5c211339d42bd2017a8888b590ff5b3941cbbadf..cbd99e7ec3ab08146142706383085b2933e314ba 100644 (file)
@@ -1583,7 +1583,6 @@ end:
  * Returns the number of bytes written
  */
 ssize_t lttng_consumer_on_read_subbuffer_mmap(
-               struct lttng_consumer_local_data *ctx,
                struct lttng_consumer_stream *stream,
                const struct lttng_buffer_view *buffer,
                unsigned long padding)
@@ -1686,7 +1685,7 @@ ssize_t lttng_consumer_on_read_subbuffer_mmap(
         * receive a ret value that is bigger than len.
         */
        ret = lttng_write(outfd, buffer->data, write_len);
-       DBG("Consumer mmap write() ret %zd (len %lu)", ret, write_len);
+       DBG("Consumer mmap write() ret %zd (len %zu)", ret, write_len);
        if (ret < 0 || ((size_t) ret != write_len)) {
                /*
                 * Report error to caller if nothing was written else at least send the
@@ -3348,6 +3347,7 @@ ssize_t lttng_consumer_read_subbuffer(struct lttng_consumer_stream *stream,
                if (ret == -ENODATA) {
                        /* Not an error. */
                        ret = 0;
+                       goto sleep_stream;
                }
                goto end;
        }
@@ -3413,6 +3413,7 @@ ssize_t lttng_consumer_read_subbuffer(struct lttng_consumer_stream *stream,
                goto end;
        }
 
+stream_sleep:
        if (stream->read_subbuffer_ops.on_sleep) {
                stream->read_subbuffer_ops.on_sleep(stream, ctx);
        }
This page took 0.023726 seconds and 4 git commands to generate.