The read() calls are in the thread that were changed by the previous patches. This patch is to completely remove traditional pipe from the sessiond thread for data and metadata streams.
David Mathieu Desnoyers: > same question about not using lttng_pipe_read() here. > > Thanks, > > Mathieu > > * David Goulet ([email protected]) wrote: >> Signed-off-by: David Goulet <[email protected]> >> --- >> src/common/kernel-consumer/kernel-consumer.c | 15 +++++++-------- >> src/common/ust-consumer/ust-consumer.c | 16 ++++++++-------- >> 2 files changed, 15 insertions(+), 16 deletions(-) >> >> diff --git a/src/common/kernel-consumer/kernel-consumer.c >> b/src/common/kernel-consumer/kernel-consumer.c >> index f23fc9c..d985014 100644 >> --- a/src/common/kernel-consumer/kernel-consumer.c >> +++ b/src/common/kernel-consumer/kernel-consumer.c >> @@ -168,7 +168,8 @@ int lttng_kconsumer_recv_cmd(struct >> lttng_consumer_local_data *ctx, >> } >> case LTTNG_CONSUMER_ADD_STREAM: >> { >> - int fd, stream_pipe; >> + int fd; >> + struct lttng_pipe *stream_pipe; >> struct consumer_relayd_sock_pair *relayd = NULL; >> struct lttng_consumer_stream *new_stream; >> struct lttng_consumer_channel *channel; >> @@ -288,18 +289,16 @@ int lttng_kconsumer_recv_cmd(struct >> lttng_consumer_local_data *ctx, >> >> /* Get the right pipe where the stream will be sent. */ >> if (new_stream->metadata_flag) { >> - stream_pipe = >> lttng_pipe_get_writefd(ctx->consumer_metadata_pipe); >> + stream_pipe = ctx->consumer_metadata_pipe; >> } else { >> - stream_pipe = >> lttng_pipe_get_writefd(ctx->consumer_data_pipe); >> + stream_pipe = ctx->consumer_data_pipe; >> } >> >> - do { >> - ret = write(stream_pipe, &new_stream, >> sizeof(new_stream)); >> - } while (ret < 0 && errno == EINTR); >> + ret = lttng_pipe_write(stream_pipe, &new_stream, >> sizeof(new_stream)); >> if (ret < 0) { >> - PERROR("Consumer write %s stream to pipe %d", >> + ERR("Consumer write %s stream to pipe %d", >> new_stream->metadata_flag ? "metadata" >> : "data", >> - stream_pipe); >> + lttng_pipe_get_writefd(stream_pipe)); >> consumer_del_stream(new_stream, NULL); >> goto end_nosignal; >> } >> diff --git a/src/common/ust-consumer/ust-consumer.c >> b/src/common/ust-consumer/ust-consumer.c >> index a81e9d4..fa46634 100644 >> --- a/src/common/ust-consumer/ust-consumer.c >> +++ b/src/common/ust-consumer/ust-consumer.c >> @@ -185,21 +185,21 @@ error: >> static int send_stream_to_thread(struct lttng_consumer_stream *stream, >> struct lttng_consumer_local_data *ctx) >> { >> - int ret, stream_pipe; >> + int ret; >> + struct lttng_pipe *stream_pipe; >> >> /* Get the right pipe where the stream will be sent. */ >> if (stream->metadata_flag) { >> - stream_pipe = >> lttng_pipe_get_writefd(ctx->consumer_metadata_pipe); >> + stream_pipe = ctx->consumer_metadata_pipe; >> } else { >> - stream_pipe = lttng_pipe_get_writefd(ctx->consumer_data_pipe); >> + stream_pipe = ctx->consumer_data_pipe; >> } >> >> - do { >> - ret = write(stream_pipe, &stream, sizeof(stream)); >> - } while (ret < 0 && errno == EINTR); >> + ret = lttng_pipe_write(stream_pipe, &stream, sizeof(stream)); >> if (ret < 0) { >> - PERROR("Consumer write %s stream to pipe %d", >> - stream->metadata_flag ? "metadata" : "data", >> stream_pipe); >> + ERR("Consumer write %s stream to pipe %d", >> + stream->metadata_flag ? "metadata" : "data", >> + lttng_pipe_get_writefd(stream_pipe)); >> } >> >> return ret; >> -- >> 1.7.10.4 >> >> >> _______________________________________________ >> lttng-dev mailing list >> [email protected] >> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > _______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
