projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: double RCU unlock on event_agent_disable_all
[lttng-tools.git]
/
src
/
common
/
consumer.c
diff --git
a/src/common/consumer.c
b/src/common/consumer.c
index effa5f86f38cfa67247fdbd17a214c34f42c5703..c34f47c33f725252f2e598603653e9b1129fcafc 100644
(file)
--- a/
src/common/consumer.c
+++ b/
src/common/consumer.c
@@
-286,6
+286,17
@@
static void free_channel_rcu(struct rcu_head *head)
struct lttng_consumer_channel *channel =
caa_container_of(node, struct lttng_consumer_channel, node);
struct lttng_consumer_channel *channel =
caa_container_of(node, struct lttng_consumer_channel, node);
+ switch (consumer_data.type) {
+ case LTTNG_CONSUMER_KERNEL:
+ break;
+ case LTTNG_CONSUMER32_UST:
+ case LTTNG_CONSUMER64_UST:
+ lttng_ustconsumer_free_channel(channel);
+ break;
+ default:
+ ERR("Unknown consumer_data type");
+ abort();
+ }
free(channel);
}
free(channel);
}
@@
-563,6
+574,7
@@
struct lttng_consumer_stream *consumer_allocate_stream(uint64_t channel_key,
stream->endpoint_status = CONSUMER_ENDPOINT_ACTIVE;
stream->index_fd = -1;
pthread_mutex_init(&stream->lock, NULL);
stream->endpoint_status = CONSUMER_ENDPOINT_ACTIVE;
stream->index_fd = -1;
pthread_mutex_init(&stream->lock, NULL);
+ pthread_mutex_init(&stream->metadata_timer_lock, NULL);
/* If channel is the metadata, flag this stream as metadata. */
if (type == CONSUMER_CHANNEL_TYPE_METADATA) {
/* If channel is the metadata, flag this stream as metadata. */
if (type == CONSUMER_CHANNEL_TYPE_METADATA) {
@@
-701,7
+713,7
@@
end:
/*
* Allocate and return a consumer relayd socket.
*/
/*
* Allocate and return a consumer relayd socket.
*/
-struct consumer_relayd_sock_pair *consumer_allocate_relayd_sock_pair(
+st
atic st
ruct consumer_relayd_sock_pair *consumer_allocate_relayd_sock_pair(
uint64_t net_seq_idx)
{
struct consumer_relayd_sock_pair *obj = NULL;
uint64_t net_seq_idx)
{
struct consumer_relayd_sock_pair *obj = NULL;
This page took
0.024387 seconds
and
4
git commands to generate.