This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author terry.reedy
Recipients Gabriel Mesquita Cangussu, gvanrossum, paul.moore, steve.dower, terry.reedy, tim.golden, vstinner, yselivanov, zach.ware
Date 2016-04-29.19:24:17
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1461957857.99.0.981359329694.issue26832@psf.upfronthosting.co.za>
In-reply-to
Content
The surprise to me, being on Windows, is that the pipe connection methods sometimes work with non-pipes.  The limitations of Windows event loops are given in https://docs.python.org/3/library/asyncio-eventloops.html#windows.  The pipe connection functions are discussed in https://docs.python.org/3/library/asyncio-eventloop.html#connect-pipes.  Both say that the methods do not work with Windows' SelectorEventLoop.

My understanding is that this is because Windows' select() call does not work with pipes -- meaning honest-to-goodness OS pipes.  So I understood "*pipe* is file-like object." more as a un-surprising statement of fact than as a permissive "'pipe' can be any file-like object and not necessarily a pipe".

If 'pipe' were intended to mean 'file-like', then why use 'pipe'?  But I can see how a current unix user would understand that sentence the other way.  Perhaps the sentence should read "For SelectorEventLoops (not on Windows), *pipe* can also be any file-like object with the appropriate methods." -- assuming that this is true on all non-Windows systems.

Isn't there some other way to asynchronously read/file files, as opposed to sockets and pipes, on Windows?
History
Date User Action Args
2016-04-29 19:24:18terry.reedysetrecipients: + terry.reedy, gvanrossum, paul.moore, vstinner, tim.golden, zach.ware, yselivanov, steve.dower, Gabriel Mesquita Cangussu
2016-04-29 19:24:17terry.reedysetmessageid: <1461957857.99.0.981359329694.issue26832@psf.upfronthosting.co.za>
2016-04-29 19:24:17terry.reedylinkissue26832 messages
2016-04-29 19:24:17terry.reedycreate