Commit dd4338d
committed
Fix executor routing for multi-executor and free-threaded modes
The executor_enqueue function was always routing requests to the single
executor queue, but multi-executor mode uses separate per-executor queues
and free-threaded mode requires direct execution without an executor.
This fix routes requests based on execution mode:
- FREE_THREADED: Execute directly with PyGILState management
- MULTI_EXECUTOR: Route to multi-executor pool via select_executor
- SUBINTERP/fallback: Use single executor queue
This fixes the timeout issues on FreeBSD Python 3.11 and free-threaded
Python 3.13t where requests were being enqueued but never processed.1 parent 587a06a commit dd4338d
1 file changed
+36
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2940 | 2940 | | |
2941 | 2941 | | |
2942 | 2942 | | |
2943 | | - | |
| 2943 | + | |
| 2944 | + | |
2944 | 2945 | | |
2945 | 2946 | | |
| 2947 | + | |
| 2948 | + | |
| 2949 | + | |
| 2950 | + | |
| 2951 | + | |
| 2952 | + | |
| 2953 | + | |
| 2954 | + | |
| 2955 | + | |
| 2956 | + | |
| 2957 | + | |
| 2958 | + | |
| 2959 | + | |
| 2960 | + | |
| 2961 | + | |
| 2962 | + | |
| 2963 | + | |
| 2964 | + | |
| 2965 | + | |
| 2966 | + | |
| 2967 | + | |
| 2968 | + | |
| 2969 | + | |
| 2970 | + | |
| 2971 | + | |
| 2972 | + | |
| 2973 | + | |
| 2974 | + | |
| 2975 | + | |
| 2976 | + | |
| 2977 | + | |
| 2978 | + | |
| 2979 | + | |
| 2980 | + | |
2946 | 2981 | | |
2947 | 2982 | | |
2948 | 2983 | | |
| |||
0 commit comments