From d2936910950cdedead20cd9f3e7e62b030031088 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Tue, 30 Jul 2024 20:44:53 +0000 Subject: [PATCH] sessiond: ust-app.cpp: iterate on list using list_iteration_adapter MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change-Id: I77d7ecb33f297561ec9c887495c7a798fa7f73ce Signed-off-by: Jérémie Galarneau --- src/bin/lttng-sessiond/ust-app.cpp | 63 ++++++++++++++++-------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/src/bin/lttng-sessiond/ust-app.cpp b/src/bin/lttng-sessiond/ust-app.cpp index 77ba76def..217d5622e 100644 --- a/src/bin/lttng-sessiond/ust-app.cpp +++ b/src/bin/lttng-sessiond/ust-app.cpp @@ -564,7 +564,6 @@ static void delete_ust_app_channel(int sock, const lsu::registry_session::locked_ref& locked_registry) { int ret; - struct ust_app_stream *stream, *stmp; LTTNG_ASSERT(ua_chan); ASSERT_RCU_READ_LOCKED(); @@ -572,7 +571,9 @@ static void delete_ust_app_channel(int sock, DBG3("UST app deleting channel %s", ua_chan->name); /* Wipe stream */ - cds_list_for_each_entry_safe (stream, stmp, &ua_chan->streams.head, list) { + for (auto *stream : + lttng::urcu::list_iteration_adapter( + ua_chan->streams.head)) { cds_list_del(&stream->list); delete_ust_app_stream(sock, stream, app); } @@ -1971,7 +1972,6 @@ static int send_channel_pid_to_ust(struct ust_app *app, struct ust_app_channel *ua_chan) { int ret; - struct ust_app_stream *stream, *stmp; LTTNG_ASSERT(app); LTTNG_ASSERT(ua_sess); @@ -2003,7 +2003,9 @@ static int send_channel_pid_to_ust(struct ust_app *app, health_code_update(); /* Send all streams to application. */ - cds_list_for_each_entry_safe (stream, stmp, &ua_chan->streams.head, list) { + for (auto *stream : + lttng::urcu::list_iteration_adapter( + ua_chan->streams.head)) { ret = ust_consumer_send_stream_to_ust(app, ua_chan, stream); if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) { ret = -ENOTCONN; /* Caused by app exiting. */ @@ -3211,7 +3213,6 @@ static int setup_buffer_reg_streams(struct buffer_reg_channel *buf_reg_chan, struct ust_app *app) { int ret = 0; - struct ust_app_stream *stream, *stmp; LTTNG_ASSERT(buf_reg_chan); LTTNG_ASSERT(ua_chan); @@ -3219,7 +3220,9 @@ static int setup_buffer_reg_streams(struct buffer_reg_channel *buf_reg_chan, DBG2("UST app setup buffer registry stream"); /* Send all streams to application. */ - cds_list_for_each_entry_safe (stream, stmp, &ua_chan->streams.head, list) { + for (auto *stream : + lttng::urcu::list_iteration_adapter( + ua_chan->streams.head)) { struct buffer_reg_stream *reg_stream; ret = buffer_reg_stream_create(®_stream); @@ -3347,7 +3350,6 @@ static int send_channel_uid_to_ust(struct buffer_reg_channel *buf_reg_chan, struct ust_app_channel *ua_chan) { int ret; - struct buffer_reg_stream *reg_stream; LTTNG_ASSERT(buf_reg_chan); LTTNG_ASSERT(app); @@ -3384,7 +3386,9 @@ static int send_channel_uid_to_ust(struct buffer_reg_channel *buf_reg_chan, /* Send all streams to application. */ pthread_mutex_lock(&buf_reg_chan->stream_list_lock); - cds_list_for_each_entry (reg_stream, &buf_reg_chan->streams, lnode) { + for (auto *reg_stream : + lttng::urcu::list_iteration_adapter( + buf_reg_chan->streams)) { struct ust_app_stream stream = {}; ret = duplicate_stream_object(reg_stream, &stream); @@ -4993,8 +4997,6 @@ static int ust_app_channel_create(struct ltt_ust_session *usess, copy_channel_attr_to_ustctl(&ua_sess->metadata_attr, &uchan->attr); ret = 0; } else { - struct ltt_ust_context *uctx = nullptr; - /* * Create channel onto application and synchronize its * configuration. @@ -5011,7 +5013,9 @@ static int ust_app_channel_create(struct ltt_ust_session *usess, } /* Add contexts. */ - cds_list_for_each_entry (uctx, &uchan->ctx_list, list) { + for (auto *uctx : + lttng::urcu::list_iteration_adapter( + uchan->ctx_list)) { ret = create_ust_app_channel_context(ua_chan, &uctx->ctx, app); if (ret) { goto error; @@ -5469,10 +5473,10 @@ static int ust_app_flush_session(struct ltt_ust_session *usess) switch (usess->buffer_type) { case LTTNG_BUFFER_PER_UID: { - struct buffer_reg_uid *reg; - /* Flush all per UID buffers associated to that session. */ - cds_list_for_each_entry (reg, &usess->buffer_reg_uid_list, lnode) { + for (auto *reg : + lttng::urcu::list_iteration_adapter( + usess->buffer_reg_uid_list)) { const lttng::urcu::read_lock_guard read_lock; lsu::registry_session *ust_session_reg; struct consumer_socket *socket; @@ -5603,13 +5607,13 @@ static int ust_app_clear_quiescent_session(struct ltt_ust_session *usess) switch (usess->buffer_type) { case LTTNG_BUFFER_PER_UID: { - struct buffer_reg_uid *reg; - /* * Clear quiescent for all per UID buffers associated to * that session. */ - cds_list_for_each_entry (reg, &usess->buffer_reg_uid_list, lnode) { + for (auto *reg : + lttng::urcu::list_iteration_adapter( + usess->buffer_reg_uid_list)) { struct consumer_socket *socket; const lttng::urcu::read_lock_guard read_lock; @@ -6934,7 +6938,7 @@ int ust_app_recv_notify(int sock) { DBG2("UST app ustctl register key received"); ret = -LTTNG_UST_ERR_NOSYS; - //TODO + // TODO goto error; } default: @@ -7050,11 +7054,11 @@ enum lttng_error_code ust_app_snapshot_record(const struct ltt_ust_session *uses switch (usess->buffer_type) { case LTTNG_BUFFER_PER_UID: { - struct buffer_reg_uid *reg; - const lttng::urcu::read_lock_guard read_lock; - cds_list_for_each_entry (reg, &usess->buffer_reg_uid_list, lnode) { + for (auto *reg : + lttng::urcu::list_iteration_adapter( + usess->buffer_reg_uid_list)) { struct consumer_socket *socket; char pathname[PATH_MAX]; size_t consumer_path_offset = 0; @@ -7231,9 +7235,9 @@ uint64_t ust_app_get_size_one_more_packet_per_stream(const struct ltt_ust_sessio switch (usess->buffer_type) { case LTTNG_BUFFER_PER_UID: { - struct buffer_reg_uid *reg; - - cds_list_for_each_entry (reg, &usess->buffer_reg_uid_list, lnode) { + for (auto *reg : + lttng::urcu::list_iteration_adapter( + usess->buffer_reg_uid_list)) { for (auto *buf_reg_chan : lttng::urcu::lfht_iteration_adapterbuffer_type) { case LTTNG_BUFFER_PER_UID: { - struct buffer_reg_uid *reg; - - cds_list_for_each_entry (reg, &usess->buffer_reg_uid_list, lnode) { + for (auto *reg : + lttng::urcu::list_iteration_adapter( + usess->buffer_reg_uid_list)) { struct consumer_socket *socket; const lttng::urcu::read_lock_guard read_lock; @@ -7603,10 +7607,11 @@ enum lttng_error_code ust_app_create_channel_subdirectories(const struct ltt_ust switch (usess->buffer_type) { case LTTNG_BUFFER_PER_UID: { - struct buffer_reg_uid *reg; const lttng::urcu::read_lock_guard read_lock; - cds_list_for_each_entry (reg, &usess->buffer_reg_uid_list, lnode) { + for (auto *reg : + lttng::urcu::list_iteration_adapter( + usess->buffer_reg_uid_list)) { fmt_ret = asprintf(&pathname_index, DEFAULT_UST_TRACE_DIR "/" DEFAULT_UST_TRACE_UID_PATH "/" DEFAULT_INDEX_DIR, -- 2.34.1