New submission from STINNER Victor:
It looks like asyncio does not suppport fork() currently: on fork(), the event
loop of the parent and the child process share the same "self pipe".
Example:
---
import asyncio, os
loop = asyncio.get_event_loop()
pid = os.fork()
if pid:
print("parent", loop._csock.fileno(), loop._ssock.fileno())
else:
print("child", loop._csock.fileno(), loop._ssock.fileno())
---
Output:
---
parent 6 5
child 6 5
---
I'm not sure that it's revelant to use asyncio with fork, but I wanted to open
an issue at least as a reminder.
I found the "self pipe" + fork issue when reading the issue #12060, while
working on a fix for the signal handling race condition on FreeBSD: issue
#21645.
----------
components: asyncio
messages: 223344
nosy: gvanrossum, haypo, yselivanov
priority: normal
severity: normal
status: open
title: asyncio: a new self-pipe should be created in the child process after
fork
versions: Python 3.4, Python 3.5
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue21998>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com