Message231819
Hi,
Actually, closing and creating a new loop in the child doesn't work either, at least on Linux.
When, in the child, we call loop.close(), it performs:
self.remove_reader(self._ssock)
(in selector_events.py, _close_self_pipe() around line 85)
Both the parent and the child still refer to the same underlying epoll structure, at that moment, and calling remove_reader() has an effect on the parent process too (which will never watch the self-pipe again).
I attached a test case that demonstrates the issue (and the workaround, commented). |
|
Date |
User |
Action |
Args |
2014-11-28 16:51:51 | martius | set | recipients:
+ martius, gvanrossum, vstinner, yselivanov |
2014-11-28 16:51:51 | martius | set | messageid: <1417193511.2.0.567945104199.issue21998@psf.upfronthosting.co.za> |
2014-11-28 16:51:51 | martius | link | issue21998 messages |
2014-11-28 16:51:50 | martius | create | |
|