projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
consumer: fix: possible unaligned access in packed structure
[lttng-tools.git]
/
src
/
common
/
consumer
/
consumer-timer.c
diff --git
a/src/common/consumer/consumer-timer.c
b/src/common/consumer/consumer-timer.c
index 721f146e20fdff2a5d7cecd0e488008bd618269f..7d000c145494fba7250e8901cd7d304e86936492 100644
(file)
--- a/
src/common/consumer/consumer-timer.c
+++ b/
src/common/consumer/consumer-timer.c
@@
-88,7
+88,7
@@
static int channel_monitor_pipe = -1;
* deadlocks.
*/
static void metadata_switch_timer(struct lttng_consumer_local_data *ctx,
* deadlocks.
*/
static void metadata_switch_timer(struct lttng_consumer_local_data *ctx,
-
int sig,
siginfo_t *si)
+ siginfo_t *si)
{
int ret;
struct lttng_consumer_channel *channel;
{
int ret;
struct lttng_consumer_channel *channel;
@@
-321,7
+321,7
@@
end:
* Execute action on a live timer
*/
static void live_timer(struct lttng_consumer_local_data *ctx,
* Execute action on a live timer
*/
static void live_timer(struct lttng_consumer_local_data *ctx,
-
int sig,
siginfo_t *si)
+ siginfo_t *si)
{
int ret;
struct lttng_consumer_channel *channel;
{
int ret;
struct lttng_consumer_channel *channel;
@@
-637,7
+637,7
@@
int sample_channel_positions(struct lttng_consumer_channel *channel,
sample_positions_cb sample, get_consumed_cb get_consumed,
get_produced_cb get_produced)
{
sample_positions_cb sample, get_consumed_cb get_consumed,
get_produced_cb get_produced)
{
- int ret;
+ int ret
= 0
;
struct lttng_ht_iter iter;
struct lttng_consumer_stream *stream;
bool empty_channel = true;
struct lttng_ht_iter iter;
struct lttng_consumer_stream *stream;
bool empty_channel = true;
@@
-710,8
+710,7
@@
end:
* Execute action on a monitor timer.
*/
static
* Execute action on a monitor timer.
*/
static
-void monitor_timer(struct lttng_consumer_local_data *ctx,
- struct lttng_consumer_channel *channel)
+void monitor_timer(struct lttng_consumer_channel *channel)
{
int ret;
int channel_monitor_pipe =
{
int ret;
int channel_monitor_pipe =
@@
-722,6
+721,7
@@
void monitor_timer(struct lttng_consumer_local_data *ctx,
sample_positions_cb sample;
get_consumed_cb get_consumed;
get_produced_cb get_produced;
sample_positions_cb sample;
get_consumed_cb get_consumed;
get_produced_cb get_produced;
+ uint64_t lowest = 0, highest = 0, total_consumed = 0;
assert(channel);
assert(channel);
@@
-745,11
+745,14
@@
void monitor_timer(struct lttng_consumer_local_data *ctx,
abort();
}
abort();
}
- ret = sample_channel_positions(channel, &
msg.highest, &msg.
lowest,
- &
msg.
total_consumed, sample, get_consumed, get_produced);
+ ret = sample_channel_positions(channel, &
highest, &
lowest,
+ &total_consumed, sample, get_consumed, get_produced);
if (ret) {
return;
}
if (ret) {
return;
}
+ msg.highest = highest;
+ msg.lowest = lowest;
+ msg.total_consumed = total_consumed;
/*
* Writes performed here are assumed to be atomic which is only
/*
* Writes performed here are assumed to be atomic which is only
@@
-838,19
+841,19
@@
void *consumer_timer_thread(void *data)
}
continue;
} else if (signr == LTTNG_CONSUMER_SIG_SWITCH) {
}
continue;
} else if (signr == LTTNG_CONSUMER_SIG_SWITCH) {
- metadata_switch_timer(ctx,
info.si_signo,
&info);
+ metadata_switch_timer(ctx, &info);
} else if (signr == LTTNG_CONSUMER_SIG_TEARDOWN) {
cmm_smp_mb();
CMM_STORE_SHARED(timer_signal.qs_done, 1);
cmm_smp_mb();
DBG("Signal timer metadata thread teardown");
} else if (signr == LTTNG_CONSUMER_SIG_LIVE) {
} else if (signr == LTTNG_CONSUMER_SIG_TEARDOWN) {
cmm_smp_mb();
CMM_STORE_SHARED(timer_signal.qs_done, 1);
cmm_smp_mb();
DBG("Signal timer metadata thread teardown");
} else if (signr == LTTNG_CONSUMER_SIG_LIVE) {
- live_timer(ctx,
info.si_signo,
&info);
+ live_timer(ctx, &info);
} else if (signr == LTTNG_CONSUMER_SIG_MONITOR) {
struct lttng_consumer_channel *channel;
channel = info.si_value.sival_ptr;
} else if (signr == LTTNG_CONSUMER_SIG_MONITOR) {
struct lttng_consumer_channel *channel;
channel = info.si_value.sival_ptr;
- monitor_timer(c
tx, c
hannel);
+ monitor_timer(channel);
} else if (signr == LTTNG_CONSUMER_SIG_EXIT) {
assert(CMM_LOAD_SHARED(consumer_quit));
goto end;
} else if (signr == LTTNG_CONSUMER_SIG_EXIT) {
assert(CMM_LOAD_SHARED(consumer_quit));
goto end;
This page took
0.03188 seconds
and
4
git commands to generate.