Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upSupport the asyncio ProactorEventLoop #77
Comments
|
Some relevant discussion on BPO: https://bugs.python.org/issue37373 |
|
I've mitigated this somewhat in the last couple commits. Should reduce the number of users hit by this issue. I've started work on an alternative networking implementation which, unfortunately, nixes |
- Used transports and protocols on asyncio for compatibility with ProactorEventLoop - Used trustme to provide dummy certificates - Separated TLS from TCP streams - Separated buffering functionality from the SocketStream class into BufferedByteReceiveStream - Added the "family" property to socket streams - Added text streams Fixes #77. Fixes #7.
- Used transports and protocols on asyncio for compatibility with ProactorEventLoop - Used trustme to provide dummy certificates - Separated TLS from TCP streams - Separated buffering functionality from the SocketStream class into BufferedByteReceiveStream - Added the "family" property to socket streams - Added text streams Fixes #77. Fixes #7.
- Used transports and protocols on asyncio for compatibility with ProactorEventLoop - Used trustme to provide dummy certificates - Separated TLS from TCP streams - Separated buffering functionality from the SocketStream class into BufferedByteReceiveStream - Added the "family" property to socket streams - Added text streams Fixes #77. Fixes #7.
- Used transports and protocols on asyncio for compatibility with ProactorEventLoop - Used trustme to provide dummy certificates - Separated TLS from TCP streams - Separated buffering functionality from the SocketStream class into BufferedByteReceiveStream - Added the "family" property to socket streams - Added text streams Fixes #77. Fixes #7.
- Used transports and protocols on asyncio for compatibility with ProactorEventLoop - Used trustme to provide dummy certificates - Separated TLS from TCP streams - Separated buffering functionality from the SocketStream class into BufferedByteReceiveStream - Added the "family" property to socket streams - Added text streams Fixes #77. Fixes #7.
- Used transports and protocols on asyncio for compatibility with ProactorEventLoop - Used trustme to provide dummy certificates - Separated TLS from TCP streams - Separated buffering functionality from the SocketStream class into BufferedByteReceiveStream - Added the "family" property to socket streams - Added text streams Fixes agronholm#77. Fixes agronholm#7.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.

Currently anyio's asyncio support relies on APIs like
add_readerwhich are not guaranteed to be available, and in particular are not available when using theProactorEventLoopon Windows.Starting in 3.8, the
ProactorEventLoopwill be the default.This isn't a big deal for programs that use
anyio.run, because that can keep the oldSelectorEventLoopdefault. But it's a big problem for libraries that use anyio internally, since they'll have to document that they don't work on Windows by default, and that anyone who wants to use them has to switch their whole program to a different event loop before they can use the library. That's going to be pretty awkward.Tornado has a similar problem: tornadoweb/tornado#2608
The standard asyncio solution to this is to use the protocols/transports layer; that's the lowest-level layer that's guaranteed to be portable. anyio might have to figure out how to do that...