New submission from Genaro Camele <[email protected]>:
I've a piece of code that submits a task to a [ThreadPoolExecutor][1] which
starts a [Process][2]. I've realised that in Python 3.8 that Process finished
with exit code `0`. But I've updated Python to the 3.9 version and this started
to finishing with exit code `1`! Even when the Process executes an empty task.
Here's a minimal example:
```python
from multiprocessing import Process
from concurrent.futures import ThreadPoolExecutor
def some_task():
pass
def execute_error():
p = Process(target=some_task)
p.start()
p.join()
print(p.exitcode) # This is always 1 on a ThreadPoolExecutor!!!
executor = ThreadPoolExecutor(max_workers=4)
executor.submit(execute_error)
# execute_error() # IMPORTANT: this works correctly (exit 0)
```
My versions:
```
Ubuntu 21.04
Python 3.9.4
```
**Note** that if `__execute_error` is called outside the ThreadPoolExecutor it
works correctly.
Running on Python 3.8.6 exitcode = 0 too.
[1]:
https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor
[2]:
https://docs.python.org/3.9/library/multiprocessing.html#multiprocessing.Process
----------
messages: 391985
nosy: Genarito
priority: normal
severity: normal
status: open
title: Processes in Python 3.9 exiting with code 1 when It's created inside a
ThreadPoolExecutor
type: behavior
versions: Python 3.9
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue43944>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com