◐ Shell
clean mode source ↗

bpo-39812: Remove daemon threads in concurrent.futures by aeros · Pull Request #19149 · python/cpython

I'm actually depending on this behavior and my code breaks in Python 3.9. Is there a way to set the threads to be daemon? The error I got:

Traceback (most recent call last):
  File "/Users/laike9m/.pyenv/versions/3.9.0/lib/python3.9/threading.py", line 950, in _bootstrap_inner
    self.run()
  File "/Users/laike9m/.pyenv/versions/3.9.0/lib/python3.9/threading.py", line 888, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/laike9m/.pyenv/versions/cyberbrain-dev@3.9.0/lib/python3.9/site-packages/grpc/_server.py", line 875, in _serve
    if not _process_event_and_continue(state, event):
  File "/Users/laike9m/.pyenv/versions/cyberbrain-dev@3.9.0/lib/python3.9/site-packages/grpc/_server.py", line 839, in _process_event_and_continue
    rpc_state, rpc_future = _handle_call(event, state.generic_handlers,
  File "/Users/laike9m/.pyenv/versions/cyberbrain-dev@3.9.0/lib/python3.9/site-packages/grpc/_server.py", line 749, in _handle_call
    return _handle_with_method_handler(rpc_event, method_handler,
  File "/Users/laike9m/.pyenv/versions/cyberbrain-dev@3.9.0/lib/python3.9/site-packages/grpc/_server.py", line 722, in _handle_with_method_handler
    return state, _handle_unary_stream(rpc_event, state,
  File "/Users/laike9m/.pyenv/versions/cyberbrain-dev@3.9.0/lib/python3.9/site-packages/grpc/_server.py", line 640, in _handle_unary_stream
    return thread_pool.submit(_stream_response_in_pool, rpc_event, state,
  File "/Users/laike9m/.pyenv/versions/3.9.0/lib/python3.9/concurrent/futures/thread.py", line 163, in submit
    raise RuntimeError('cannot schedule new futures after '
RuntimeError: cannot schedule new futures after interpreter shutdown