X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fstop.c;fp=src%2Fbin%2Flttng%2Fcommands%2Fstop.c;h=cb45f12ce56085a15bd2cdc5f52ca1fd41a69c72;hp=60a1dac8fe8ca4db4fd58c19d7d4a904012acd70;hb=8eb7a5e2b9006c5f675c3809055e8abcdffcdb6f;hpb=37628572013efe91a42dd60153598b74cd507ddd diff --git a/src/bin/lttng/commands/stop.c b/src/bin/lttng/commands/stop.c index 60a1dac8f..cb45f12ce 100644 --- a/src/bin/lttng/commands/stop.c +++ b/src/bin/lttng/commands/stop.c @@ -79,11 +79,7 @@ static int stop_tracing(void) session_name = opt_session_name; } - if (opt_no_wait) { - ret = lttng_stop_tracing_no_wait(session_name); - } else { - ret = lttng_stop_tracing(session_name); - } + ret = lttng_stop_tracing_no_wait(session_name); if (ret < 0) { switch (-ret) { case LTTNG_ERR_TRACE_ALREADY_STOPPED: @@ -96,6 +92,29 @@ static int stop_tracing(void) goto free_name; } + if (!opt_no_wait) { + _MSG("Waiting for data availability"); + fflush(stdout); + do { + ret = lttng_data_pending(session_name); + if (ret < 0) { + /* Return the data available call error. */ + goto error; + } + + /* + * Data sleep time before retrying (in usec). Don't sleep if the call + * returned value indicates availability. + */ + if (ret) { + usleep(DEFAULT_DATA_AVAILABILITY_WAIT_TIME); + _MSG("."); + fflush(stdout); + } + } while (ret != 0); + MSG(""); + } + ret = CMD_SUCCESS; MSG("Tracing stopped for session %s", session_name);