diff options
Diffstat (limited to 'src/blockinput.h')
| -rw-r--r-- | src/blockinput.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/blockinput.h b/src/blockinput.h index a4c8a9b9c22..a3b50d2a0f2 100644 --- a/src/blockinput.h +++ b/src/blockinput.h | |||
| @@ -94,7 +94,30 @@ extern int pending_atimers; | |||
| 94 | } \ | 94 | } \ |
| 95 | while (0) | 95 | while (0) |
| 96 | 96 | ||
| 97 | #define TOTALLY_UNBLOCK_INPUT (interrupt_input_blocked = 0) | 97 | /* Undo any number of BLOCK_INPUT calls, |
| 98 | and also reinvoke any pending signal. */ | ||
| 99 | |||
| 100 | #define TOTALLY_UNBLOCK_INPUT \ | ||
| 101 | if (interrupt_input_blocked != 0) \ | ||
| 102 | { \ | ||
| 103 | interrupt_input_blocked = 1; \ | ||
| 104 | UNBLOCK_INPUT; \ | ||
| 105 | } \ | ||
| 106 | else | ||
| 107 | |||
| 108 | /* Undo any number of BLOCK_INPUT calls down to level LEVEL, | ||
| 109 | and also (if the level is now 0) reinvoke any pending signal. */ | ||
| 110 | |||
| 111 | #define UNBLOCK_INPUT_TO(LEVEL) \ | ||
| 112 | do \ | ||
| 113 | { \ | ||
| 114 | int oldlevel = interrupt_input_blocked; \ | ||
| 115 | interrupt_input_blocked = (LEVEL) + 1; \ | ||
| 116 | if (interrupt_input_blocked != oldlevel + 1) \ | ||
| 117 | UNBLOCK_INPUT; \ | ||
| 118 | } \ | ||
| 119 | while (0) | ||
| 120 | |||
| 98 | #define UNBLOCK_INPUT_RESIGNAL UNBLOCK_INPUT | 121 | #define UNBLOCK_INPUT_RESIGNAL UNBLOCK_INPUT |
| 99 | 122 | ||
| 100 | /* In critical section ? */ | 123 | /* In critical section ? */ |