Make pause(3) implementation not depended on the legacy sigcompat.c
interfaces. Do not block rt signals during and after pause(3) calls. Use private libc namespace to call proper methods. MFC after: 1 week
This commit is contained in:
parent
bc49613a68
commit
4d44fc9c59
@ -33,8 +33,10 @@ static char sccsid[] = "@(#)pause.c 8.1 (Berkeley) 6/4/93";
|
||||
#include <sys/cdefs.h>
|
||||
__FBSDID("$FreeBSD$");
|
||||
|
||||
#include "namespace.h"
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
#include "un-namespace.h"
|
||||
|
||||
/*
|
||||
* Backwards compatible pause.
|
||||
@ -42,7 +44,11 @@ __FBSDID("$FreeBSD$");
|
||||
int
|
||||
__pause(void)
|
||||
{
|
||||
return sigpause(sigblock(0L));
|
||||
sigset_t oset;
|
||||
|
||||
if (_sigprocmask(SIG_BLOCK, NULL, &oset) == -1)
|
||||
return (-1);
|
||||
return (_sigsuspend(&oset));
|
||||
}
|
||||
__weak_reference(__pause, pause);
|
||||
__weak_reference(__pause, _pause);
|
||||
|
Loading…
x
Reference in New Issue
Block a user