Fix: use lttng pipe to send new stream to thread
[lttng-tools.git] / src / common / ust-consumer / ust-consumer.c
index 031a7cb261a52fa8d6b0c4c53be291be5896b973..e0280f1489e2e8defa25e1311023f4f518e4d666 100644 (file)
@@ -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 = ctx->consumer_metadata_pipe[1];
+               stream_pipe = ctx->consumer_metadata_pipe;
        } else {
-               stream_pipe = ctx->consumer_data_pipe[1];
+               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;
@@ -278,6 +278,12 @@ static int create_ust_streams(struct lttng_consumer_channel *channel,
                 */
                stream->wait_fd = wait_fd;
 
+               /*
+                * Increment channel refcount since the channel reference has now been
+                * assigned in the allocation process above.
+                */
+               uatomic_inc(&stream->chan->refcount);
+
                /*
                 * Order is important this is why a list is used. On error, the caller
                 * should clean this list.
This page took 0.033567 seconds and 5 git commands to generate.