No, they would just always call
set_event_loop(SelectorEventLoop(selector)). You are proposing to make
that the default for everyone which I think would be a really bad
step, since few people need PTYs.

Let's just skip the PTY unit tests on OS X before Mavericks.

On Thu, Jan 23, 2014 at 6:30 AM, Victor Stinner
<[email protected]> wrote:
> 2014/1/14 Jonathan Slenders <[email protected]>:
>> Jonathans-MacBook-Pro:~ jonathan$ python /tmp/test_pty.py
>> kqueue seems to support PTY
>> Jonathans-MacBook-Pro:~ jonathan$ sw_vers -productVersion
>> 10.9
>
> So kqueue was improved in OS X Maverick (10.9).
>
> Guido wrote:
>> If someone really wants to use PTYs on affected OS X boxes
>>  they can start by forcing the affected apps to use the select selector
>
> The workaround is not so easy:
> ---
> import sys, platform
> if sys.platform == 'darwin':
>     version_txt = platform.mac_ver()[0]
>     version = tuple(map(int, version_txt.split('.')))
>     if version < (10, 9):
>         import selectors, asyncio
>         from asyncio.unix_events import SelectorEventLoop
>         selector = selectors.SelectSelector()
>         asyncio.set_event_loop(SelectorEventLoop(selector))
> ---
>
> What do you think of the opposite? Use select.select() on OS X < 10.9
> by default, but explain how to force select.epoll if you don't care of
> PTY?
>
> This discussion remembers me a Python issue proposing to add a
> function to get the best selector depending on different criteria like
> "don't use a file descriptor for the poller" (use poll instead of
> epoll).
>
> FYI Apple provides the Maverick upgrade for free (!) for Mac OS X
> users. I will upgrade my iMac (which currently runs Mac OS 10.6.8) :-)
>
> Victor



-- 
--Guido van Rossum (python.org/~guido)

Reply via email to