ioctl Anda di /devices/pseudo/[email protected]:poll
perangkat (atau /dev/pool
) tampaknya ditangani oleh fungsi kernel dari file common/io/devpoll.c (salinan online - http://fxr.watson.org/fxr/source/common/io/devpoll.c?v=OPENSOLARIS
)
Lebih tepatnya, dengan dpioctl
fungsi:
692 dpioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp, int *rvalp)
zhihuifan, setelah memeriksa stacktrace Anda, saya melihat bahwa program Anda telah dieksekusi:
main() -> ... nteveque() -> ioctl()
Kemudian penangan sinyal dipanggil.. Saya melihat tidak ada pengiriman sinyal dari dpioctl, jadi saya pikir sinyal itu dikirim oleh beberapa fungsi eksternal (atau program atau oleh pengguna):
--- called from signal handler with signal 0 (SIGEXIT) ---
Kemudian penangan sinyal ruang pengguna dipanggil:
sigacthandler -> call_user_handler -> __sighndlr
-> sslsstehdlr
sslsstehdlr
melakukan banyak tindakan, dan menurut pengetahuan saya dan standar POSIX ("2.4 Konsep Sinyal"
dari Spesifikasi Basis Grup Terbuka Edisi 6; IEEE Std 1003.1, Edisi 2004), pengendali sinyal hanya dapat memanggil (langsung atau tidak langsung) fungsi yang tercantum dalam tabel
... daftar besar tapi tidak ada ptherad_sigmask
disini...