X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fstop.c;h=965ab94feb66f45ca5d89752a3da5661f341d415;hp=60a1dac8fe8ca4db4fd58c19d7d4a904012acd70;hb=c7e35b037773dbbfe10178c946ba44feefb226e1;hpb=38ee087f699718e57d1bc5614c2f79c3c30ccca9 diff --git a/src/bin/lttng/commands/stop.c b/src/bin/lttng/commands/stop.c index 60a1dac8f..965ab94fe 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); @@ -122,6 +141,13 @@ int cmd_stop(int argc, const char **argv) pc = poptGetContext(NULL, argc, argv, long_options, 0); poptReadDefaultConfig(pc, 0); + /* TODO: mi support */ + if (lttng_opt_mi) { + ret = -LTTNG_ERR_MI_NOT_IMPLEMENTED; + ERR("mi option not supported"); + goto end; + } + while ((opt = poptGetNextOpt(pc)) != -1) { switch (opt) { case OPT_HELP: