Remove unused code
[lttng-tools.git] / src / common / ust-consumer / ust-consumer.c
index 11706877a7f5b3f147034abcf106a0bb5e77c5d2..dea92ac2374f3f5127dc97389ed6f054d8f49d69 100644 (file)
@@ -171,7 +171,7 @@ int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
        case LTTNG_CONSUMER_ADD_STREAM:
        {
                struct lttng_consumer_stream *new_stream;
-               int fds[2];
+               int fds[2], stream_pipe;
                size_t nb_fd = 2;
                struct consumer_relayd_sock_pair *relayd = NULL;
                int alloc_ret = 0;
@@ -253,32 +253,25 @@ int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
                        }
                }
 
-               /* Send stream to the metadata thread */
+               /* Get the right pipe where the stream will be sent. */
                if (new_stream->metadata_flag) {
-                       do {
-                               ret = write(ctx->consumer_metadata_pipe[1], &new_stream,
-                                               sizeof(new_stream));
-                       } while (ret < 0 && errno == EINTR);
-                       if (ret < 0) {
-                               PERROR("write metadata pipe");
-                               consumer_del_metadata_stream(new_stream, NULL);
-                               goto end_nosignal;
-                       }
+                       stream_pipe = ctx->consumer_metadata_pipe[1];
                } else {
-                       ret = consumer_add_stream(new_stream);
-                       if (ret) {
-                               ERR("Consumer add stream %d failed. Continuing",
-                                               new_stream->key);
-                               /*
-                                * At this point, if the add_stream fails, it is not in the
-                                * hash table thus passing the NULL value here.
-                                */
-                               consumer_del_stream(new_stream, NULL);
-                               goto end_nosignal;
-                       }
+                       stream_pipe = ctx->consumer_data_pipe[1];
+               }
+
+               do {
+                       ret = write(stream_pipe, &new_stream, sizeof(new_stream));
+               } while (ret < 0 && errno == EINTR);
+               if (ret < 0) {
+                       PERROR("Consumer write %s stream to pipe %d",
+                                       new_stream->metadata_flag ? "metadata" : "data",
+                                       stream_pipe);
+                       consumer_del_stream(new_stream, NULL);
+                       goto end_nosignal;
                }
 
-               DBG("UST consumer_add_stream %s (%d,%d) with relayd id %" PRIu64,
+               DBG("UST consumer ADD_STREAM %s (%d,%d) with relayd id %" PRIu64,
                                msg.u.stream.path_name, fds[0], fds[1],
                                new_stream->relayd_stream_id);
                break;
@@ -315,39 +308,11 @@ int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
        {
                rcu_read_unlock();
                return -ENOSYS;
-#if 0
-               if (ctx->on_update_stream != NULL) {
-                       ret = ctx->on_update_stream(msg.u.stream.stream_key, msg.u.stream.state);
-                       if (ret == 0) {
-                               consumer_change_stream_state(msg.u.stream.stream_key, msg.u.stream.state);
-                       } else if (ret < 0) {
-                               goto end;
-                       }
-               } else {
-                       consumer_change_stream_state(msg.u.stream.stream_key,
-                               msg.u.stream.state);
-               }
-               break;
-#endif
        }
        default:
                break;
        }
 
-       /*
-        * Wake-up the other end by writing a null byte in the pipe (non-blocking).
-        * Important note: Because writing into the pipe is non-blocking (and
-        * therefore we allow dropping wakeup data, as long as there is wakeup data
-        * present in the pipe buffer to wake up the other end), the other end
-        * should perform the following sequence for waiting:
-        *
-        * 1) empty the pipe (reads).
-        * 2) perform update operation.
-        * 3) wait on the pipe (poll).
-        */
-       do {
-               ret = write(ctx->consumer_poll_pipe[1], "", 1);
-       } while (ret < 0 && errno == EINTR);
 end_nosignal:
        rcu_read_unlock();
 
@@ -528,6 +493,13 @@ int lttng_ustconsumer_on_recv_stream(struct lttng_consumer_stream *stream)
                stream->out_fd = ret;
        }
 
+       ret = lttng_ustconsumer_add_stream(stream);
+       if (ret) {
+               consumer_del_stream(stream, NULL);
+               ret = -1;
+               goto error;
+       }
+
        /* we return 0 to let the library handle the FD internally */
        return 0;
 
This page took 0.025626 seconds and 4 git commands to generate.