consumerd: clean-up: stream attribute accessed without locking stream
[lttng-tools.git] / src / common / consumer / consumer-metadata-cache.c
index 65702a2296e1b908702453f9a03b0f14a2bb91ab..5eee4014265f42566776ea34645a0f08504fbde0 100644 (file)
@@ -273,9 +273,9 @@ int consumer_metadata_cache_flushed(struct lttng_consumer_channel *channel,
                pthread_mutex_lock(&channel->lock);
        }
        pthread_mutex_lock(&channel->timer_lock);
-       pthread_mutex_lock(&channel->metadata_cache->lock);
-
        metadata_stream = channel->metadata_stream;
+       pthread_mutex_lock(&metadata_stream->lock);
+       pthread_mutex_lock(&channel->metadata_cache->lock);
 
        if (!metadata_stream) {
                /*
@@ -295,6 +295,7 @@ int consumer_metadata_cache_flushed(struct lttng_consumer_channel *channel,
        }
 
        pthread_mutex_unlock(&channel->metadata_cache->lock);
+       pthread_mutex_unlock(&metadata_stream->lock);
        pthread_mutex_unlock(&channel->timer_lock);
        if (!timer) {
                pthread_mutex_unlock(&channel->lock);
This page took 0.031515 seconds and 4 git commands to generate.