Fix: hash table cleanup call_rcu deadlock
[lttng-tools.git] / src / bin / lttng-sessiond / trace-ust.c
index 8fb685c8d2ab62d4123997fef2be46510e448ebf..51632bad4ed602bcbc52fc769cc346bb709c74b3 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "buffer-registry.h"
 #include "trace-ust.h"
+#include "utils.h"
 
 /*
  * Match function for the events hash table lookup.
@@ -228,7 +229,7 @@ struct ltt_ust_session *trace_ust_create_session(unsigned int session_id)
        return lus;
 
 error_consumer:
-       lttng_ht_destroy(lus->domain_global.channels);
+       ht_cleanup_push(lus->domain_global.channels);
        free(lus);
 error:
        return NULL;
@@ -483,7 +484,7 @@ static void destroy_contexts(struct lttng_ht *ht)
        }
        rcu_read_unlock();
 
-       lttng_ht_destroy(ht);
+       ht_cleanup_push(ht);
 }
 
 /*
@@ -530,7 +531,7 @@ static void destroy_events(struct lttng_ht *events)
        }
        rcu_read_unlock();
 
-       lttng_ht_destroy(events);
+       ht_cleanup_push(events);
 }
 
 /*
@@ -604,7 +605,7 @@ static void destroy_channels(struct lttng_ht *channels)
        }
        rcu_read_unlock();
 
-       lttng_ht_destroy(channels);
+       ht_cleanup_push(channels);
 }
 
 /*
This page took 0.023629 seconds and 4 git commands to generate.