From 33b7f82ce73daba7490fc4e9cd8fbab03a0e982b Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Fri, 26 Jul 2024 19:15:48 +0000 Subject: [PATCH] relayd: viewer-session.cpp: iterate on lfht using lfht_iteration_adapter MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change-Id: Ice79de9905f6fd374c6de897541ac7915a3f8231 Signed-off-by: Jérémie Galarneau --- src/bin/lttng-relayd/viewer-session.cpp | 40 +++++++++++-------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/src/bin/lttng-relayd/viewer-session.cpp b/src/bin/lttng-relayd/viewer-session.cpp index 176cdc525..535a4f55b 100644 --- a/src/bin/lttng-relayd/viewer-session.cpp +++ b/src/bin/lttng-relayd/viewer-session.cpp @@ -143,34 +143,30 @@ void viewer_session_destroy(struct relay_viewer_session *vsession) void viewer_session_close_one_session(struct relay_viewer_session *vsession, struct relay_session *session) { - struct lttng_ht_iter iter; - struct relay_viewer_stream *vstream; - /* * TODO: improvement: create more efficient list of * vstream per session. */ - { - const lttng::urcu::read_lock_guard read_guard; - - cds_lfht_for_each_entry ( - viewer_streams_ht->ht, &iter.iter, vstream, stream_n.node) { - if (!viewer_stream_get(vstream)) { - continue; - } - if (vstream->stream->trace->session != session) { - viewer_stream_put(vstream); - continue; - } - /* Put local reference. */ - viewer_stream_put(vstream); - /* - * We have reached one of the viewer stream's lifetime - * end condition. This "put" will cause the proper - * teardown of the viewer stream. - */ + for (auto *vstream : + lttng::urcu::lfht_iteration_adapter( + *viewer_streams_ht->ht)) { + if (!viewer_stream_get(vstream)) { + continue; + } + if (vstream->stream->trace->session != session) { viewer_stream_put(vstream); + continue; } + /* Put local reference. */ + viewer_stream_put(vstream); + /* + * We have reached one of the viewer stream's lifetime + * end condition. This "put" will cause the proper + * teardown of the viewer stream. + */ + viewer_stream_put(vstream); } lttng_trace_chunk_put(vsession->current_trace_chunk); -- 2.34.1