fix: restore success-path server_sock.close() before rpc_thread.join()
PR #568 moved the close entirely to the finally block, but the success-path close is needed to break the RPC thread out of accept() immediately. Without it, rpc_thread.join(3) may block for up to 3 seconds if the child process never connected. The finally-block close remains as a safety net for the exception/error path (the actual fd leak fix).
This commit is contained in:
@@ -511,6 +511,7 @@ def execute_code(
|
|||||||
duration = round(time.monotonic() - exec_start, 2)
|
duration = round(time.monotonic() - exec_start, 2)
|
||||||
|
|
||||||
# Wait for RPC thread to finish
|
# Wait for RPC thread to finish
|
||||||
|
server_sock.close() # break accept() so thread exits promptly
|
||||||
rpc_thread.join(timeout=3)
|
rpc_thread.join(timeout=3)
|
||||||
|
|
||||||
# Build response
|
# Build response
|
||||||
|
|||||||
Reference in New Issue
Block a user