X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Fcommon%2Fconsumer.c;h=b5fe9831640217455c40c11b9e85e36b470ec05c;hb=f21dae485bbd4a21104eff49a80b59ce25054bc2;hp=044a504cec512443039e15eac186df07e841f896;hpb=13886d2d433762b7cf54f8e812f747ec2829de57;p=lttng-tools.git diff --git a/src/common/consumer.c b/src/common/consumer.c index 044a504ce..b5fe98316 100644 --- a/src/common/consumer.c +++ b/src/common/consumer.c @@ -102,6 +102,7 @@ static void notify_channel_pipe(struct lttng_consumer_local_data *ctx, msg.action = action; msg.chan = chan; + msg.key = key; do { ret = write(ctx->consumer_channel_pipe[1], &msg, sizeof(msg)); } while (ret < 0 && errno == EINTR); @@ -463,6 +464,13 @@ void consumer_del_stream(struct lttng_consumer_stream *stream, PERROR("munmap"); } } + + if (stream->wait_fd >= 0) { + ret = close(stream->wait_fd); + if (ret) { + PERROR("close"); + } + } break; case LTTNG_CONSUMER32_UST: case LTTNG_CONSUMER64_UST: @@ -899,7 +907,7 @@ int consumer_add_channel(struct lttng_consumer_channel *channel, /* Channel already exist. Ignore the insertion */ ERR("Consumer add channel key %" PRIu64 " already exists!", channel->key); - ret = -1; + ret = LTTNG_ERR_KERN_CHAN_EXIST; goto end; } @@ -1876,6 +1884,13 @@ void consumer_del_metadata_stream(struct lttng_consumer_stream *stream, PERROR("munmap metadata stream"); } } + + if (stream->wait_fd >= 0) { + ret = close(stream->wait_fd); + if (ret < 0) { + PERROR("close kernel metadata wait_fd"); + } + } break; case LTTNG_CONSUMER32_UST: case LTTNG_CONSUMER64_UST: