Jika proses Unix (Posix) menerima sinyal, penangan sinyal akan berjalan.
Apa yang akan terjadi padanya dalam proses multithread? Utas mana yang menerima sinyal?
Menurut pendapat saya, API sinyal harus diperluas untuk menangani hal itu (yaitu utas penangan sinyal harus dapat ditentukan), tetapi memburu informasi di internet Saya hanya menemukan api sepanjang tahun di milis kernel linux dan di forum yang berbeda. Seperti yang saya pahami, konsep Linus berbeda dari standar Posix, dan pertama-tama beberapa lapisan compat dibuat, tetapi sekarang Linux mengikuti model posix.
Bagaimana keadaan saat ini?
linux
signals
posix
multithreading
peterh - Pasang kembali Monica
sumber
sumber
Jawaban:
Entri dalam POSIX pada " Pembangkitan Sinyal dan Pengiriman " dalam "Dasar Pemikiran: Antarmuka Sistem Informasi Umum" mengatakan
Dari
signal(7)
manual di sistem Linux:Dan di
pthreads(7)
:Dari
pthreads(3)
manual pada sistem OpenBSD (sebagai contoh pendekatan alternatif):(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:sumber