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 gvanrossum
Recipients Aleksey Kladov, gvanrossum, martin.panter, neologix, vstinner, yselivanov
Date 2015-11-22.23:01:15
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1448233275.42.0.404065728317.issue25680@psf.upfronthosting.co.za>
In-reply-to
Content
I don't think we should "fix" the select module; it's advertised as a wrapper around the various syscalls, and if the platforms disagree on what that syscall (e.g. select()) does we shouldn't try to fix it. (Documenting the differences is fine.)

However the *selectors* module is a different thing. It defines a better abstraction that's supposedly independent from the underlying syscall. I agree with Aleksey that it should just hang when no FDs are registered and no timeout is given -- this is the only logical extension of its behavior when a FD is registered or a timeout is given. This could be used to wait until e.g. a signal arrives.

It's illogical that it would behave differently if a FD was registered that will never fire, or if a timeout of a billion seconds was given (although that may be an easy hack to wait forever if the underlying syscall doesn't like this).

The asyncio package would probably be broken because of this except that it always has a FD registered (the self-pipe).
History
Date User Action Args
2015-11-22 23:01:15gvanrossumsetrecipients: + gvanrossum, vstinner, neologix, martin.panter, yselivanov, Aleksey Kladov
2015-11-22 23:01:15gvanrossumsetmessageid: <1448233275.42.0.404065728317.issue25680@psf.upfronthosting.co.za>
2015-11-22 23:01:15gvanrossumlinkissue25680 messages
2015-11-22 23:01:15gvanrossumcreate