X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fkernel-consumer%2Fkernel-consumer.c;h=46a9f52c0ac2406787f2743213da3380b2a503d4;hb=091441eb540f7fe6cf23658d232cbec7a385f867;hp=4f734294caa553477f46eb0858edc45b3476b1e9;hpb=741e787bf03338ec74a1df3621c5bde4b13c4e17;p=lttng-tools.git diff --git a/src/common/kernel-consumer/kernel-consumer.c b/src/common/kernel-consumer/kernel-consumer.c index 4f734294c..46a9f52c0 100644 --- a/src/common/kernel-consumer/kernel-consumer.c +++ b/src/common/kernel-consumer/kernel-consumer.c @@ -1710,6 +1710,14 @@ bool is_get_next_check_metadata_available(int tracer_fd) return available; } +static +int signal_metadata(struct lttng_consumer_stream *stream, + struct lttng_consumer_local_data *ctx) +{ + ASSERT_LOCKED(stream->metadata_rdv_lock); + return pthread_cond_broadcast(&stream->metadata_rdv) ? -errno : 0; +} + static int lttng_kconsumer_set_stream_ops( struct lttng_consumer_stream *stream) @@ -1740,6 +1748,8 @@ int lttng_kconsumer_set_stream_ops( metadata_bucket_destroy(stream->metadata_bucket); stream->metadata_bucket = NULL; } + + stream->read_subbuffer_ops.on_sleep = signal_metadata; } if (!stream->read_subbuffer_ops.get_next_subbuffer) {