2012-02-01 18 views

回答

1

我很確定這與Signal Handler方法是可重入的有關。假設發送了一個信號,並且您的處理程序抓取信號並開始處理。在處理過程中,另一個信號可能由併發程序發送,然後您的處理程序再次捕獲該信號,並開始處理它。

根據調度的實施方式,信號處理程序在執行時可能會執行。問題是它使用了相同的指針和變量,所以它可能會破壞自己,特別是因爲gettid()返回當前線程的ID。當前線程在這種情況下是什麼?

相關問題