X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=lttng-sessiond%2Fust-app.c;fp=lttng-sessiond%2Fust-app.c;h=6de177564a0c53b38af847b3453c72e740301cf1;hp=73dc770c9391f3fac295d6e16b58fcfefa195ac9;hb=9d6c7d3f1d68c55b6722d4c08da9f9d3f281e61d;hpb=90d97d10e57ba8b2b10481837efb3d2402f41f88 diff --git a/lttng-sessiond/ust-app.c b/lttng-sessiond/ust-app.c index 73dc770c9..6de177564 100644 --- a/lttng-sessiond/ust-app.c +++ b/lttng-sessiond/ust-app.c @@ -1944,6 +1944,17 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) goto error_rcu_unlock; } + /* This inhibits UST tracing */ + ret = ustctl_stop_session(app->key.sock, ua_sess->handle); + if (ret < 0) { + ERR("Error stopping tracing for app pid: %d", app->key.pid); + goto error_rcu_unlock; + } + + /* Quiescent wait after stopping trace */ + ustctl_wait_quiescent(app->key.sock); + + /* Flushing buffers */ cds_lfht_for_each_entry(ua_sess->channels, &iter, ua_chan, node) { ret = ustctl_sock_flush_buffer(app->key.sock, ua_chan->obj); if (ret < 0) { @@ -1955,18 +1966,6 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) } } - /* This inhibits UST tracing */ - ret = ustctl_stop_session(app->key.sock, ua_sess->handle); - if (ret < 0) { - ERR("Error stopping tracing for app pid: %d", app->key.pid); - goto error_rcu_unlock; - } - - rcu_read_unlock(); - - /* Quiescent wait after stopping trace */ - ustctl_wait_quiescent(app->key.sock); - /* Flush all buffers before stopping */ ret = ustctl_sock_flush_buffer(app->key.sock, ua_sess->metadata->obj); if (ret < 0) { @@ -1974,6 +1973,8 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) ERR("Ended with ret %d", ret); } + rcu_read_unlock(); + return 0; error_rcu_unlock: