私は2つのpythonスレッド(import threading
)を実行しています。どちらもopen()
コールでブロックされています。実際には名前付きパイプを書き込むために名前付きパイプを開こうとするので、誰かが名前付きパイプからの読み取りを試みるまでブロックするのは正常な動作です。要するにスレッドでシステムコールの中断を伝える
、それは次のようになります。私は^ Cを入力すると
import threading
def f():
open('pipe2', 'r')
if __name__ == '__main__':
t = threading.Thread(target=f)
t.start()
open('pipe1', 'r')
、メインスレッド内open()
は(のerrno == 4とIOError
を上げる)中断されます。
私の問題は:t
スレッドがまだ待っている、私はそれを高めるために割り込み動作を伝播したいと思いますIOError
。
それを起動する前に子スレッドでdaemon = Trueを設定した場合、どうなるでしょうか?Windowsではこれが正常ではありません。 –
これ以上はありません。そして、私の質問の目的はスレッドを殺すことではなく、信号を受信した後に彼にいくつかのもの(掃除)をしてもらいたいのです。 – deathiop