X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftrace-ust.cpp;h=f3303efd7c1a55980541e39253cfb5b7d1e34b41;hb=9ee61e743b098eb111e97163ce9939ac62947dd7;hp=ce85c32369f8567670b395c3211f47b4ba51ea85;hpb=21cf9b6b1843774306a76f4dccddddd706b64f79;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/trace-ust.cpp b/src/bin/lttng-sessiond/trace-ust.cpp index ce85c3236..f3303efd7 100644 --- a/src/bin/lttng-sessiond/trace-ust.cpp +++ b/src/bin/lttng-sessiond/trace-ust.cpp @@ -167,6 +167,7 @@ struct ltt_ust_channel *trace_ust_find_channel_by_name(struct lttng_ht *ht, struct lttng_ht_node_str *node; struct lttng_ht_iter iter; + ASSERT_RCU_READ_LOCKED(); /* * If we receive an empty string for channel name, it means the * default channel name is requested. @@ -204,6 +205,7 @@ struct ltt_ust_event *trace_ust_find_event(struct lttng_ht *ht, LTTNG_ASSERT(name); LTTNG_ASSERT(ht); + ASSERT_RCU_READ_LOCKED(); key.name = name; key.filter = filter; @@ -329,8 +331,8 @@ error: process_attr_tracker_destroy(lus->tracker_vpid); process_attr_tracker_destroy(lus->tracker_vuid); process_attr_tracker_destroy(lus->tracker_vgid); - ht_cleanup_push(lus->domain_global.channels); - ht_cleanup_push(lus->agents); + lttng_ht_destroy(lus->domain_global.channels); + lttng_ht_destroy(lus->agents); free(lus); error_alloc: return NULL; @@ -774,7 +776,7 @@ static void fini_id_tracker(struct ust_id_tracker *id_tracker) destroy_id_tracker_node(tracker_node); } rcu_read_unlock(); - ht_cleanup_push(id_tracker->ht); + lttng_ht_destroy(id_tracker->ht); id_tracker->ht = NULL; } @@ -1231,7 +1233,7 @@ static void destroy_contexts(struct lttng_ht *ht) } rcu_read_unlock(); - ht_cleanup_push(ht); + lttng_ht_destroy(ht); } /* @@ -1294,7 +1296,7 @@ static void destroy_events(struct lttng_ht *events) } rcu_read_unlock(); - ht_cleanup_push(events); + lttng_ht_destroy(events); } /* @@ -1371,7 +1373,7 @@ static void destroy_channels(struct lttng_ht *channels) } rcu_read_unlock(); - ht_cleanup_push(channels); + lttng_ht_destroy(channels); } /* @@ -1387,8 +1389,6 @@ static void destroy_domain_global(struct ltt_ust_domain_global *dom) /* * Cleanup ust session structure, keeping data required by * destroy notifier. - * - * Should *NOT* be called with RCU read-side lock held. */ void trace_ust_destroy_session(struct ltt_ust_session *session) { @@ -1412,7 +1412,7 @@ void trace_ust_destroy_session(struct ltt_ust_session *session) } rcu_read_unlock(); - ht_cleanup_push(session->agents); + lttng_ht_destroy(session->agents); /* Cleanup UID buffer registry object(s). */ cds_list_for_each_entry_safe(reg, sreg, &session->buffer_reg_uid_list,