Skip to content

Commit 0b47153

Browse files
author
Lukáš Ondráček
committed
daemon/defer: fix linter warnings
1 parent e86b877 commit 0b47153

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

daemon/defer.c

+4-1
Original file line numberDiff line numberDiff line change
@@ -897,7 +897,10 @@ int defer_init(const char *mmap_file, uint32_t log_period, uint32_t hard_timeout
897897
for (size_t i = 0; i < QUEUES_CNT; i++)
898898
queue_init(queues[i]);
899899

900-
signal(SIGALRM, defer_alarm);
900+
if (signal(SIGALRM, defer_alarm) == SIG_ERR) {
901+
kr_log_error(DEFER, "Cannot set SIGALRM handler, interrupting of too long work on a single request will not work: %s\n",
902+
strerror(errno));
903+
}
901904
defer_alarm(0);
902905

903906
return 0;

daemon/defer.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,10 @@ static inline bool defer_sample_is_accounting(void)
127127
/// Start accounting work; optionally save state of current accounting.
128128
/// Current state can be saved only after having an address assigned.
129129
static inline void defer_sample_start(defer_sample_state_t *prev_state_out) {
130-
if (!defer) return;
130+
if (!defer) {
131+
if (prev_state_out) *prev_state_out = (defer_sample_state_t){ 0 }; // just to meet undefined-value check of linter, but never used
132+
return;
133+
}
131134
uint64_t stamp = defer_get_stamp();
132135

133136
// suspend

daemon/worker.c

+4-3
Original file line numberDiff line numberDiff line change
@@ -2024,7 +2024,8 @@ static enum protolayer_event_cb_result pl_dns_stream_disconnected(
20242024
return PROTOLAYER_EVENT_PROPAGATE;
20252025

20262026
defer_sample_state_t defer_prev_sample_state;
2027-
if (session->outgoing)
2027+
const bool use_recursive_defer_sampling = session->outgoing; // make linter warning silent
2028+
if (use_recursive_defer_sampling)
20282029
defer_sample_start(&defer_prev_sample_state);
20292030

20302031
while (!session2_waitinglist_is_empty(session)) {
@@ -2043,7 +2044,7 @@ static enum protolayer_event_cb_result pl_dns_stream_disconnected(
20432044
qry->flags.TCP = false;
20442045
}
20452046
qr_task_step(task, NULL, NULL);
2046-
defer_sample_restart();
2047+
defer_sample_restart(); // use_recursive_defer_sampling == true
20472048
} else {
20482049
kr_assert(task->ctx->source.session == session);
20492050
task->ctx->source.session = NULL;
@@ -2068,7 +2069,7 @@ static enum protolayer_event_cb_result pl_dns_stream_disconnected(
20682069
worker_task_unref(task);
20692070
}
20702071

2071-
if (session->outgoing)
2072+
if (use_recursive_defer_sampling)
20722073
defer_sample_stop(&defer_prev_sample_state, true);
20732074

20742075
return PROTOLAYER_EVENT_PROPAGATE;

0 commit comments

Comments
 (0)