Entri dalam POSIX pada " Pembangkitan Sinyal dan Pengiriman " dalam "Dasar Pemikiran: Antarmuka Sistem Informasi Umum" mengatakan
Sinyal yang dihasilkan untuk suatu proses dikirimkan hanya ke satu utas. Jadi, jika lebih dari satu utas memenuhi syarat untuk menerima sinyal, seseorang harus dipilih. Pilihan utas sepenuhnya diserahkan kepada implementasi, baik untuk memungkinkan jangkauan terluas dari implementasi yang sesuai dan untuk memberikan implementasi kebebasan untuk mengirimkan sinyal ke utas "yang paling mudah" jika ada perbedaan dalam kemudahan pengiriman antara utas yang berbeda.
Dari signal(7)
manual di sistem Linux:
Sinyal dapat dihasilkan (dan dengan demikian ditangguhkan) untuk suatu proses secara keseluruhan (misalnya, ketika dikirim menggunakan kill(2)
) atau untuk utas tertentu (misalnya, sinyal tertentu, seperti SIGSEGV dan SIGFPE, dihasilkan sebagai konsekuensi dari mengeksekusi mesin tertentu- instruksi bahasa diarahkan utas, demikian juga sinyal ditargetkan pada utas tertentu menggunakan pthread_kill(3)
). Sinyal yang diarahkan pada proses dapat dikirimkan ke salah satu utas yang saat ini tidak memiliki sinyal yang diblokir. Jika lebih dari satu utas memiliki sinyal yang tidak diblokir, maka kernel memilih utas yang sewenang-wenang untuk mengirimkan sinyal.
Dan di pthreads(7)
:
Utas memiliki pengaturan tumpukan sinyal alternatif yang berbeda. Namun, pengaturan tumpukan sinyal thread baru disalin dari thread yang membuatnya, sehingga thread awalnya berbagi stack sinyal alternatif (diperbaiki di kernel 2.6.16).
Dari pthreads(3)
manual pada sistem OpenBSD (sebagai contoh pendekatan alternatif):
Penangan sinyal biasanya dijalankan pada tumpukan utas yang saat ini sedang dijalankan.
(Saya saat ini tidak mengetahui bagaimana hal ini ditangani ketika beberapa utas mengeksekusi secara bersamaan pada mesin multi-prosesor)
Implementasi LinuxThread yang lebih tua dari utas POSIX hanya memungkinkan utas tunggal yang berbeda untuk ditargetkan oleh sinyal. Dari pthreads(7)
pada sistem Linux:
LinuxThreads tidak mendukung gagasan sinyal yang diarahkan pada proses: sinyal hanya dapat dikirim ke utas tertentu.