Actions
Bug #14727
openTestQueue#test_queue_with_trap always timeout on Windows10
Bug #14727:
TestQueue#test_queue_with_trap always timeout on Windows10
Description
表題の通りです。ささださんも把握しているそうなので、備忘録として。
Actions
Added by usa (Usaku NAKAMURA) over 8 years ago. Updated over 8 years ago.
Description
表題の通りです。ささださんも把握しているそうなので、備忘録として。
私も Windows 10 にして再現していました。
私が理解している範囲で、現象をちょっと書いておきます。
(1) GVL に Win32 の Mutex を使っている
(2) Win32 Mutex は、以前はスケジューリングをきちんと(インタプリタ開発者視点)してくれていた。つまり、ある Mutex について、それを待っているスレッド B がある場合、その Mutex を保持していたスレッド A が Mutex を離すと、B の実行が再開されるようになっていた。
(3) Windows 10 にすると(Windows 10 が再現条件か、サンプルが少ないのでなんとも言えないのですが、とりあえず少ない証言から言うと)、スレッド A が Mutex を離しても、スレッド B に処理が素直に渡らなくなった。
というものです。
pthread では、それを回避するために、なんか難しいことをしているのですが、Windows では必要なくて。便利で良かったね、と思っていたんですが、なんか考えないといけないようです。さて、どうしよう。
いちおう、手元(というかなんというか)での再現状況は、
という感じです。