projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: kernel consumer: signal metadata ready condition variable
[lttng-tools.git]
/
src
/
common
/
kernel-consumer
/
kernel-consumer.c
diff --git
a/src/common/kernel-consumer/kernel-consumer.c
b/src/common/kernel-consumer/kernel-consumer.c
index 4f734294caa553477f46eb0858edc45b3476b1e9..46a9f52c0ac2406787f2743213da3380b2a503d4 100644
(file)
--- 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;
}
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)
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;
}
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) {
}
if (!stream->read_subbuffer_ops.get_next_subbuffer) {
This page took
0.025286 seconds
and
4
git commands to generate.