Commit d08ed35
fix: multiprocessing.Pool(fork)をThreadPoolExecutorに置き換える
macOSでのpytest実行時に、マルチスレッドプロセス (pytest) からfork()した後、requestsがプロキシ設定を取得しようとするとSIGSEGVが発生する問題を修正する。
ThreadPoolExecutorはfork()しないためこのクラッシュが発生せず、またスレッドは同プロセスのメモリを共有するためrequests_mockもそのまま有効になる。
HTTPリクエストではI/O待機中にGILが解放されスレッドでも実質並列に実行できるため、multiprocessing.Poolより適切であり、結果として #5926 でforkを明示していた問題も根本から解消される (forkserver/spawn では requests_mock が子プロセスに引き継がれず、実際のHTTPリクエストが発生するという問題があったが、スレッドになるので発生しない)。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 9826072 commit d08ed35
1 file changed
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | 4 | | |
6 | 5 | | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
196 | 196 | | |
197 | 197 | | |
198 | 198 | | |
199 | | - | |
200 | | - | |
| 199 | + | |
| 200 | + | |
201 | 201 | | |
202 | 202 | | |
203 | 203 | | |
| |||
0 commit comments