Josiah Carlson added the comment:

Quick update before I head to bed.

Thank you for the input, I had gotten the individual async calls working a 
couple days ago, and I was just working to replace the communicate() method for 
Windows.

Yes, I'm using asyncio._overlapped, though asyncio uses subprocessing, so I 
needed to defer import of _overlapped until one of a couple crucial methods 
were being called in order to prevent issues relating to circular imports.

I also ended up moving asyncio.windows_utils.pipe out to subprocess, as 
copying/pasting it for a third 'create an overlapped-io pipe' implementation 
for the standard library just doesn't make a lot of sense, and another circular 
import seemed like a bad idea. If/when subprocess goes away completely, someone 
else can move the function back.

With overlapped IOs able to be cancelled, it's not all that bad to make a 
completely re-entrant communicate() without threads, though I made a few 
mistakes in my first pass tonight that I need to fix tomorrow.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue1191964>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to