Skip to content
Syscall BSD#111

svc · unix #111

sigsuspend

Remplace atomiquement le masque de signaux et attend qu'un handler revienne.

Prototype

int sigsuspend(sigset_t mask);

Retour: int

Arguments

NameTypeDirDescription
masksigset_t-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard111
xnu-1486.2.11111
xnu-1504.15.3111
xnu-1504.3.12111
xnu-1504.7.4111
xnu-1504.9.17111
xnu-1504.9.26111
xnu-1504.9.37111

Notes

Sert à éliminer la fenêtre de course où on débloquerait un signal puis appellerait pause(). Retourne -1 avec errno EINTR une fois qu'un handler s'est exécuté ; le masque d'origine est restauré automatiquement. Se marie naturellement avec un handler posé par sigaction qui positionne un flag relu après retour.

Détection

La probe DTrace syscall::sigsuspend:entry expose le pointeur du masque temporaire. À combiner avec proc:::signal-handle pour tracer le cycle débloquer-livrer-revenir.

API associées

sigactionsigprocmasksigpending__sigwaitkill