inetd: suppress aliasing warning
function old new delta sigprocmask2 - 8 +8 wait_for_child_or_signal 213 218 +5 dowait 424 429 +5 block_CHLD_HUP_ALRM 62 59 -3 sigprocmask_SIG_SETMASK 16 - -16 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 2/1 up/down: 18/-19) Total: -1 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
136fe9bede
commit
b437df1157
@ -544,8 +544,8 @@ void sig_unblock(int sig) FAST_FUNC;
|
||||
int sigaction_set(int sig, const struct sigaction *act) FAST_FUNC;
|
||||
/* SIG_BLOCK/SIG_UNBLOCK all signals: */
|
||||
int sigprocmask_allsigs(int how) FAST_FUNC;
|
||||
/* SIG_SETMASK set, and return old set in the same set: */
|
||||
int sigprocmask_SIG_SETMASK(sigset_t *set) FAST_FUNC;
|
||||
/* Return old set in the same set: */
|
||||
int sigprocmask2(int how, sigset_t *set) FAST_FUNC;
|
||||
/* Standard handler which just records signo */
|
||||
extern smallint bb_got_signal;
|
||||
void record_signo(int signo); /* not FAST_FUNC! */
|
||||
|
@ -31,14 +31,14 @@ int FAST_FUNC sigprocmask_allsigs(int how)
|
||||
return sigprocmask(how, &set, NULL);
|
||||
}
|
||||
|
||||
int FAST_FUNC sigprocmask_SIG_SETMASK(sigset_t *set)
|
||||
int FAST_FUNC sigprocmask2(int how, sigset_t *set)
|
||||
{
|
||||
// Grr... gcc 8.1.1:
|
||||
// "passing argument 3 to restrict-qualified parameter aliases with argument 2"
|
||||
// dance around that...
|
||||
sigset_t *oset FIX_ALIASING;
|
||||
oset = set;
|
||||
return sigprocmask(SIG_SETMASK, set, oset);
|
||||
return sigprocmask(how, set, oset);
|
||||
}
|
||||
|
||||
void FAST_FUNC bb_signals(int sigs, void (*f)(int))
|
||||
|
@ -488,7 +488,7 @@ static void block_CHLD_HUP_ALRM(sigset_t *m)
|
||||
sigaddset(m, SIGCHLD);
|
||||
sigaddset(m, SIGHUP);
|
||||
sigaddset(m, SIGALRM);
|
||||
sigprocmask(SIG_BLOCK, m, m); /* old sigmask is stored in m */
|
||||
sigprocmask2(SIG_BLOCK, m); /* old sigmask is stored in m */
|
||||
}
|
||||
|
||||
static void restore_sigmask(sigset_t *m)
|
||||
|
@ -4217,7 +4217,7 @@ wait_block_or_sig(int *status)
|
||||
/* Children exist, but none are ready. Sleep until interesting signal */
|
||||
#if 1
|
||||
sigfillset(&mask);
|
||||
sigprocmask_SIG_SETMASK(&mask); /* mask is updated */
|
||||
sigprocmask2(SIG_SETMASK, &mask); /* mask is updated */
|
||||
while (!got_sigchld && !pending_sig)
|
||||
sigsuspend(&mask);
|
||||
sigprocmask(SIG_SETMASK, &mask, NULL);
|
||||
|
@ -11442,7 +11442,7 @@ static int wait_for_child_or_signal(struct pipe *waitfor_pipe, pid_t waitfor_pid
|
||||
* and get stuck in sigsuspend...
|
||||
*/
|
||||
sigfillset(&oldset); /* block all signals, remember old set */
|
||||
sigprocmask_SIG_SETMASK(&oldset);
|
||||
sigprocmask2(SIG_SETMASK, &oldset);
|
||||
|
||||
if (!sigisemptyset(&G.pending_set)) {
|
||||
/* Crap! we raced with some signal! */
|
||||
|
Loading…
Reference in New Issue
Block a user