| 101 | } |
| 102 | |
| 103 | static inline void |
| 104 | patchPOSIXUserMaskWork(int how, |
| 105 | const sigset_t *set, |
| 106 | sigset_t *oldset, |
| 107 | bool *checkpointSignalBlocked) |
| 108 | { |
| 109 | if (oldset != NULL) { |
| 110 | if (*checkpointSignalBlocked == true) { |
| 111 | sigaddset(oldset, bannedSignalNumber()); |
| 112 | } else { |
| 113 | sigdelset(oldset, bannedSignalNumber()); |
| 114 | } |
| 115 | } |
| 116 | |
| 117 | if (set != NULL) { |
| 118 | int bannedSignaIsMember = sigismember(set, bannedSignalNumber()); |
| 119 | if (how == SIG_BLOCK && bannedSignaIsMember) { |
| 120 | *checkpointSignalBlocked = true; |
| 121 | } else if (how == SIG_UNBLOCK && bannedSignaIsMember) { |
| 122 | *checkpointSignalBlocked = false; |
| 123 | } else if (how == SIG_SETMASK) { |
| 124 | *checkpointSignalBlocked = bannedSignaIsMember; |
| 125 | } |
| 126 | } |
| 127 | } |
| 128 | |
| 129 | static inline void |
| 130 | patchPOSIXUserMask(int how, const sigset_t *set, sigset_t *oldset) |
no test coverage detected