X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fagent-thread.cpp;h=f641ed78e12aecf0b16a67680b1ac54f0dc3ded2;hp=c3d76896cdbf54b0fdf2e55acb44519e6a30af17;hb=HEAD;hpb=28ab034a2c3582d07d3423d2d746731f87d3969f diff --git a/src/bin/lttng-sessiond/agent-thread.cpp b/src/bin/lttng-sessiond/agent-thread.cpp index c3d76896c..23a26a806 100644 --- a/src/bin/lttng-sessiond/agent-thread.cpp +++ b/src/bin/lttng-sessiond/agent-thread.cpp @@ -18,9 +18,12 @@ #include #include #include +#include #include #include +#include + namespace { struct thread_notifiers { struct lttng_pipe *quit_pipe; @@ -73,37 +76,38 @@ static void update_agent_app(const struct agent_app *app) if (session->ust_session) { const struct agent *agt; - rcu_read_lock(); + lttng::urcu::read_lock_guard read_lock; agt = trace_ust_find_agent(session->ust_session, app->domain); if (agt) { agent_update(agt, app); } - rcu_read_unlock(); } session_unlock(session); session_put(session); } - rcu_read_lock(); - /* - * We are protected against the addition of new events by the session - * list lock being held. - */ - cds_lfht_for_each_entry ( - the_trigger_agents_ht_by_domain->ht, &iter.iter, trigger_agent, node.node) { - agent_update(trigger_agent, app); + { + /* + * We are protected against the addition of new events by the session + * list lock being held. + */ + lttng::urcu::read_lock_guard read_lock; + + cds_lfht_for_each_entry ( + the_trigger_agents_ht_by_domain->ht, &iter.iter, trigger_agent, node.node) { + agent_update(trigger_agent, app); + } } - rcu_read_unlock(); } /* * Create and init socket from uri. */ -static struct lttcomm_sock *init_tcp_socket(void) +static struct lttcomm_sock *init_tcp_socket() { int ret; - struct lttng_uri *uri = NULL; - struct lttcomm_sock *sock = NULL; + struct lttng_uri *uri = nullptr; + struct lttcomm_sock *sock = nullptr; unsigned int port; bool bind_succeeded = false; @@ -118,7 +122,7 @@ static struct lttcomm_sock *init_tcp_socket(void) sock = lttcomm_alloc_sock_from_uri(uri); uri_free(uri); - if (sock == NULL) { + if (sock == nullptr) { ERR("agent allocating TCP socket"); goto error; } @@ -178,7 +182,7 @@ error: if (sock) { lttcomm_destroy_sock(sock); } - return NULL; + return nullptr; } /* @@ -302,7 +306,7 @@ static int accept_agent_connection(struct lttcomm_sock *reg_sock, new_sock->fd); *agent_app_socket = new_sock; - new_sock = NULL; + new_sock = nullptr; ret = 0; goto end; @@ -313,7 +317,7 @@ end: return ret; } -bool agent_tracing_is_enabled(void) +bool agent_tracing_is_enabled() { int enabled; @@ -407,7 +411,7 @@ static void *thread_agent_management(void *data) goto error; } - while (1) { + while (true) { DBG3("Manage agent polling"); /* Inifinite blocking call, waiting for transmission */ @@ -440,7 +444,7 @@ static void *thread_agent_management(void *data) /* Activity on the registration socket. */ if (revents & LPOLLIN) { struct agent_app_id new_app_id; - struct agent_app *new_app = NULL; + struct agent_app *new_app = nullptr; struct lttcomm_sock *new_app_socket; int new_app_socket_fd; @@ -464,7 +468,7 @@ static void *thread_agent_management(void *data) continue; } new_app_socket_fd = new_app_socket->fd; - new_app_socket = NULL; + new_app_socket = nullptr; /* * Since this is a command socket (write then @@ -532,7 +536,7 @@ error_poll_create: DBG("Cleaning up and stopping."); rcu_thread_offline(); rcu_unregister_thread(); - return NULL; + return nullptr; } static bool shutdown_agent_management_thread(void *data) @@ -552,7 +556,7 @@ static void cleanup_agent_management_thread(void *data) free(notifiers); } -bool launch_agent_management_thread(void) +bool launch_agent_management_thread() { struct thread_notifiers *notifiers; struct lttng_thread *thread;