Twój ioctl na /devices/pseudo/[email protected]:poll
urządzenie (lub /dev/pool
) wydaje się być obsługiwany przez funkcję jądra z pliku common/io/devpoll.c (kopia online - http://fxr.watson.org/fxr/source/common/io/devpoll.c?v=OPENSOLARIS
)
Dokładniej, przez dpioctl
funkcja:
692 dpioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp, int *rvalp)
zhihuifan, po sprawdzeniu śladu stosu widzę, że program został wykonany:
main() -> ... nteveque() -> ioctl()
Następnie wywołano obsługę sygnału.. Nie widzę wysyłania sygnałów z dpioctl, więc myślę, że sygnał został wysłany przez jakąś funkcję zewnętrzną (lub program lub przez użytkownika):
--- called from signal handler with signal 0 (SIGEXIT) ---
Następnie nazwano obsługę sygnału w przestrzeni użytkownika:
sigacthandler -> call_user_handler -> __sighndlr
-> sslsstehdlr
sslsstehdlr
wykonałem wiele akcji i zgodnie z moją wiedzą i standardami POSIX ("2.4 Koncepcje dotyczące sygnałów”
z The Open Group Base Specifications wydanie 6; IEEE Std 1003.1, 2004 Edition), program obsługi sygnału może wywoływać (bezpośrednio lub pośrednio) tylko funkcje wymienione w tabeli
... ogromna lista, ale nie ma ptherad_sigmask
tutaj...