Sinyalleri Engellemenin Amaçları
Önceki Sinyallerin Engellenmesi Sonraki
Sinyalleri Engellemenin Amaçları
Sinyalleri sigprocmask ile engelleyerek yazılımınızın kritik kısımlarının kesmelerden korunmasını sağlayabilirsiniz. Yazılımınızın bu kısımları etkinken bir sinyal gelirse bir sinyalin engellenmesini kaldırınca o sinyal tekrar alınabilir.
Buna kullanışlı bir örnek, sinyal eylemci ile yazılımın diğer kısımları arasında veri paylaşımıdır. Veri türü sig_atomic_t (bkz. Atomik Veri Erişimi ve Sinyal İşleme) değilse yazılımınız bu veriyi okur ya da yazarken işlemin ortasında sinyal eylemci çalışmaya başlarsa işlem yarıda kalacağından sorunlara yol açabilir.
Yazılımın düzgün çalışabilmesi için verinin işlenmesi sırasında sinyallerin alınmasını engelleyerek sinyal eylemcinin çalışmamasını sağlayabilirsiniz.
Ayrıca, belli bir eylemi sadece bir sinyal gelmediğinde gerçekleştirmeniz gerekiyorsa sinyallerin engellenmesi gereklidir. Bir sinyal eylemcisinin sig_atomic_t türünde bir değişkene değer atadığını, sizin de eyleminizi gerçekleştirmeden önce bu değişkenin değerine baktığınızı varsayalım. Bu yöntem güvenilir değildir. Eyleminizi gerçekleştirmeden, bu değişkenin değerine baktıktan hemen sonra da bir sinyal gelebilir.
Bir sinyalin alınıp alınmadığına bakmanın en güvenilir yolu sinyali engelleyerek değişkenin değerine bakmaktır.
Önceki Üst Ana Başlık Sonraki
Sinyallerin Engellenmesi Başlangıç Sinyal Kümeleri
Bir Linux Kitaplığı Sayfası