});
if(sig) {
+#ifdef HAVE_STDATOMIC_H
atomic_flag_clear(&sig->set);
+#endif
sig->cb(loop, sig->data);
}
}
}
void signal_trigger(event_loop_t *loop, signal_t *sig) {
+#ifdef HAVE_STDATOMIC_H
+
if(atomic_flag_test_and_set(&sig->set)) {
return;
}
+#endif
+
uint8_t signum = sig->signum;
write(loop->pipefd[1], &signum, 1);
return;
sig->signum = signum;
sig->node.data = sig;
+#ifdef HAVE_STDATOMIC_H
atomic_flag_clear(&sig->set);
+#endif
if(loop->pipefd[0] == -1) {
pipe_init(loop);