Hi, 2014-03-27 22:52 GMT+01:00 Josiah Carlson <josiah.carl...@gmail.com>: > ... but I never made an effort to get it practically working > with asyncore - primarily because such would be functionally impossible on > Windows without a lot of work to pull in a chunk of what was pywin32 > libraries (at the time, Windows was a primary target). On the *nix side of > things, performing the integration would be arguably trivial as select, > poll, epoll, etc., all deal with pipes the same way as any other file > handles (on-disk files, domain sockets, network sockets, etc.), with OS X > being the exception.
You should definitively take a look at asyncio. It handles sockets *and* pipes on all platforms, and even character devices (PTY) on some platforms. (The current status is still unclear to me, especially regarding to the "non blocking" flag of the PTY.) On Windows, asyncio uses IOCP. asyncio.subprocess solves also an old issue related to polling: subprocess.wait(timeout) uses polling because it was not possible to register an handler for SIGCHLD handler without breaking backward compatibility. asyncio supports also signals as well. > As an alternative, easily 95% of what most people would use this for can be > written as an example using the asyncio module and included in the docs just > after (or replacing) > http://docs.python.org/3/library/asyncio-subprocess.html#example . Adding a > reference to the subprocess module docs to point off to the asyncio > subprocess example docs would get people a copy/paste snippet that they can > include and update to their heart's content. Yeah, a link should be added from the subprocess module to the asyncio.subprocess module (the module, not the example). FYI the asyncore doc now has this note: "Note: This module exists for backwards compatibility only. For new code we recommend using asyncio." I opened the following issue for the "ls | wc -l" feature request: http://bugs.python.org/issue21080 Victor _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com