X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fcommon%2Fconsumer-timer.c;h=b02ccbb115a9cdd6337f5214bcd49b8d268aed79;hb=1fc79fb475198741b09a13b5397f018dff4b1aec;hp=e2be05e7e731b8355235e3d040365545c5828bbc;hpb=d3e2ba59faddb31870e2ce29b6a881f7ad5ad883;p=lttng-tools.git diff --git a/src/common/consumer-timer.c b/src/common/consumer-timer.c index e2be05e7e..b02ccbb11 100644 --- a/src/common/consumer-timer.c +++ b/src/common/consumer-timer.c @@ -21,7 +21,6 @@ #include #include -#include #include #include #include @@ -29,6 +28,7 @@ #include "consumer-timer.h" #include "ust-consumer/ust-consumer.h" +#include "../bin/lttng-consumerd/health-consumerd.h" static struct timer_signal_data timer_signal = { .tid = 0, @@ -100,7 +100,7 @@ static void metadata_switch_timer(struct lttng_consumer_local_data *ctx, * they are held while consumer_timer_switch_stop() is * called. */ - ret = lttng_ustconsumer_request_metadata(ctx, channel, 1); + ret = lttng_ustconsumer_request_metadata(ctx, channel, 1, 1); if (ret < 0) { channel->switch_timer_error = 1; } @@ -186,15 +186,20 @@ static int check_ust_stream(struct lttng_consumer_stream *stream) * safely send the empty index. */ pthread_mutex_lock(&stream->lock); - ret = ustctl_get_current_timestamp(stream->ustream, &ts); + ret = cds_lfht_is_node_deleted(&stream->node.node); + if (ret) { + goto error_unlock; + } + + ret = lttng_ustconsumer_get_current_timestamp(stream, &ts); if (ret < 0) { ERR("Failed to get the current timestamp"); goto error_unlock; } - ustctl_flush_buffer(stream->ustream, 1); - ret = ustctl_snapshot(stream->ustream); + lttng_ustconsumer_flush_buffer(stream, 1); + ret = lttng_ustconsumer_take_snapshot(stream); if (ret < 0) { - if (errno != EAGAIN) { + if (ret != -EAGAIN) { ERR("Taking UST snapshot"); ret = -1; goto error_unlock; @@ -465,6 +470,8 @@ void *consumer_timer_thread(void *data) siginfo_t info; struct lttng_consumer_local_data *ctx = data; + health_register(health_consumerd, HEALTH_CONSUMERD_TYPE_METADATA_TIMER); + /* Only self thread will receive signal mask. */ setmask(&mask); CMM_STORE_SHARED(timer_signal.tid, pthread_self()); @@ -490,5 +497,9 @@ void *consumer_timer_thread(void *data) } } + /* Currently never reached */ + health_unregister(health_consumerd); + + /* Never return */ return NULL; }