MCPcopy Create free account
hub / github.com/dmtcp/dmtcp / patchPOSIXUserMaskWork

Function patchPOSIXUserMaskWork

src/signalwrappers.cpp:103–127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

101}
102
103static inline void
104patchPOSIXUserMaskWork(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
129static inline void
130patchPOSIXUserMask(int how, const sigset_t *set, sigset_t *oldset)

Callers 2

patchPOSIXUserMaskFunction · 0.85
patchPOSIXUserMaskMTFunction · 0.85

Calls 1

bannedSignalNumberFunction · 0.85

Tested by

no test coverage detected