projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
consumerd: register threads to health monitoring
[lttng-tools.git]
/
src
/
common
/
consumer-timer.c
diff --git
a/src/common/consumer-timer.c
b/src/common/consumer-timer.c
index e2be05e7e731b8355235e3d040365545c5828bbc..b02ccbb115a9cdd6337f5214bcd49b8d268aed79 100644
(file)
--- a/
src/common/consumer-timer.c
+++ b/
src/common/consumer-timer.c
@@
-21,7
+21,6
@@
#include <inttypes.h>
#include <signal.h>
#include <inttypes.h>
#include <signal.h>
-#include <lttng/ust-ctl.h>
#include <common/common.h>
#include <common/kernel-ctl/kernel-ctl.h>
#include <common/kernel-consumer/kernel-consumer.h>
#include <common/common.h>
#include <common/kernel-ctl/kernel-ctl.h>
#include <common/kernel-consumer/kernel-consumer.h>
@@
-29,6
+28,7
@@
#include "consumer-timer.h"
#include "ust-consumer/ust-consumer.h"
#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,
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.
*/
* 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;
}
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);
* 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;
}
if (ret < 0) {
ERR("Failed to get the current timestamp");
goto error_unlock;
}
-
ustctl_flush_buffer(stream->u
stream, 1);
- ret =
ustctl_snapshot(stream->u
stream);
+
lttng_ustconsumer_flush_buffer(
stream, 1);
+ ret =
lttng_ustconsumer_take_snapshot(
stream);
if (ret < 0) {
if (ret < 0) {
- if (
errno !=
EAGAIN) {
+ if (
ret != -
EAGAIN) {
ERR("Taking UST snapshot");
ret = -1;
goto error_unlock;
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;
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());
/* 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;
}
return NULL;
}
This page took
0.030929 seconds
and
5
git commands to generate.