From 4abbb4b4739598c50973593d2787696116e49fcf Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Mon, 3 Oct 2016 09:37:10 -0700 Subject: 39548: DEBUG for queueing_enabled --- Src/signals.h | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'Src/signals.h') diff --git a/Src/signals.h b/Src/signals.h index d68096891..1904f4326 100644 --- a/Src/signals.h +++ b/Src/signals.h @@ -82,8 +82,6 @@ #define MAX_QUEUE_SIZE 128 -#define queue_signals() (queueing_enabled++) - #define run_queued_signals() do { \ while (queue_front != queue_rear) { /* while signals in queue */ \ sigset_t oset; \ @@ -94,12 +92,35 @@ } \ } while (0) +#ifdef DEBUG + +#define queue_signals() (queue_in++, queueing_enabled++) + #define unqueue_signals() do { \ DPUTS(!queueing_enabled, "BUG: unqueue_signals called but not queueing"); \ + --queue_in; \ if (!--queueing_enabled) run_queued_signals(); \ } while (0) -#define queue_signal_level() queueing_enabled +#define dont_queue_signals() do { \ + queue_in = queueing_enabled; \ + queueing_enabled = 0; \ + run_queued_signals(); \ +} while (0) + +#define restore_queue_signals(q) do { \ + DPUTS2(queueing_enabled && queue_in != q, \ + "BUG: q = %d != queue_in = %d", q, queue_in); \ + queue_in = (queueing_enabled = (q)); \ +} while (0) + +#else /* !DEBUG */ + +#define queue_signals() (queueing_enabled++) + +#define unqueue_signals() do { \ + if (!--queueing_enabled) run_queued_signals(); \ +} while (0) #define dont_queue_signals() do { \ queueing_enabled = 0; \ @@ -108,6 +129,10 @@ #define restore_queue_signals(q) (queueing_enabled = (q)) +#endif /* DEBUG */ + +#define queue_signal_level() queueing_enabled + #ifdef BSD_SIGNALS #define signal_block(S) sigblock(S) #else -- cgit 1.4.1