タグ

2013年8月21日のブックマーク (1件)

  • POS47-C. 非同期キャンセルが可能なスレッドを使用しない

    POS47-C. 非同期キャンセルが可能なスレッドを使用しない スレッドの処理において、pthread は、即座にキャンセルするか、または特定のキャンセルポイントまでキャンセルを遅らせるかを設定できる。しかし、ほとんどのスレッドは安全に即座に (非同期に) キャンセルできないため、非同期にキャンセルするは危険である。 IEEE 標準規格には次のように記述されている。 安全にキャンセルできる関数に限り、非同期キャンセルが可能なスレッドから呼び出すことができる。 非同期のキャンセルは、スレッドを強制終了させるときにシグナルをスレッドに渡す場合と同じ道をたどるため、「CON37-C. マルチスレッドプログラムで signal() を呼び出さない」(「SIG02-C. 標準的な機能を実装する際はシグナルの使用を避ける」に密接に関連する)と同様の問題をもたらす。POS44-C と SIG02-C で

    POS47-C. 非同期キャンセルが可能なスレッドを使用しない
    kohagi
    kohagi 2013/08/21
    PTHREAD_CANCEL_ASYNCHRONOUSは使ってはいけない