Uw ioctl op /devices/pseudo/[email protected]:poll
apparaat (of /dev/pool
) lijkt te worden afgehandeld door de kernelfunctie van het common/io/devpoll.c-bestand (online kopie - http://fxr.watson.org/fxr/source/common/io/devpoll.c?v=OPENSOLARIS
)
Meer precies, door de dpioctl
functie:
692 dpioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp, int *rvalp)
zhihuifan, na het controleren van je stacktrace zie ik dat je programma het volgende heeft uitgevoerd:
main() -> ... nteveque() -> ioctl()
Toen werd de signaalbehandelaar aangeroepen.. Ik zie geen verzending van signalen van dpioctl, dus ik denk dat het signaal is verzonden door een externe functie (of programma of door gebruiker):
--- called from signal handler with signal 0 (SIGEXIT) ---
Vervolgens werd de user-space signal handler aangeroepen:
sigacthandler -> call_user_handler -> __sighndlr
-> sslsstehdlr
De sslsstehdlr
heeft veel acties ondernomen, en volgens mijn kennis en POSIX-normen ("2.4 Signaalconcepten"
uit The Open Group Base Specificaties Nummer 6; IEEE Std 1003.1, 2004 Edition), mag de signaalbehandelaar alleen (direct of indirect) functies aanroepen die in tabel
... enorme lijst maar er is geen ptherad_sigmask
hier...