From: Jérémie Galarneau Date: Wed, 7 May 2014 18:27:45 +0000 (-0400) Subject: Fix: Don't output to stdout from lttng-ctl X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=commitdiff_plain;h=8eb7a5e2b9006c5f675c3809055e8abcdffcdb6f Fix: Don't output to stdout from lttng-ctl Signed-off-by: Jérémie Galarneau Signed-off-by: David Goulet --- 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); diff --git a/src/lib/lttng-ctl/lttng-ctl.c b/src/lib/lttng-ctl/lttng-ctl.c index 756fd6b59..272c70299 100644 --- a/src/lib/lttng-ctl/lttng-ctl.c +++ b/src/lib/lttng-ctl/lttng-ctl.c @@ -579,9 +579,6 @@ static int _lttng_stop_tracing(const char *session_name, int wait) goto end; } - _MSG("Waiting for data availability"); - fflush(stdout); - /* Check for data availability */ do { data_ret = lttng_data_pending(session_name); @@ -597,13 +594,9 @@ static int _lttng_stop_tracing(const char *session_name, int wait) */ if (data_ret) { usleep(DEFAULT_DATA_AVAILABILITY_WAIT_TIME); - _MSG("."); - fflush(stdout); } } while (data_ret != 0); - MSG(""); - end: error: return ret;