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) {
}
}
- /* 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) {
ERR("Ended with ret %d", ret);
}
+ rcu_read_unlock();
+
return 0;
error_rcu_unlock: