Skip to content

Conversation

@vstinner
Copy link
Member

@vstinner vstinner commented May 3, 2017

On macOS, check for broken poll() at runtime on macOS Sierra 16.0.x-16.5.x.

Disable select.poll() (remove select.poll) if poll() is broken.

cc @MicroTransactionsMatterToo.

@mention-bot
Copy link

@Haypo, thanks for your PR! By analyzing the history of the files in this pull request, we identified @akuchling, @tiran and @warsaw to be potential reviewers.

On macOS, check for broken poll() at runtime on macOS Sierra 16.0.x-16.5.x. Disable select.poll() (remove select.poll) if poll() is broken. Reenable select.poll() tests in test_asyncore and test_eintr on macOS.
@gpshead
Copy link
Member

gpshead commented May 6, 2017

Removing select.poll() because of a broken behavior in one single case is the wrong approach. It is still fundamentally useful. Just workaround the known issue any place our standard library uses poll() when on MacOS.

Given the actual underlying poll bug it might be possible to hide it from Python developers by having our poll implementation add a dummy fd to the call and hide that from the results we give. I hate that though as it decreases the ire against Apple. But it would save the rest of the Python world time and prevent kicking anyone who wants their code to run on MacOS back to the 1990s.

@vstinner
Copy link
Member Author

vstinner commented May 6, 2017 via email

@gpshead
Copy link
Member

gpshead commented May 7, 2017

Understood. See my update in https://bugs.python.org/issue28087. I suspect we do not need to fix anything here as Apple appears to have actually fixed it and shipped the fix.

@MicroTransactionsMatterToo
Copy link

MicroTransactionsMatterToo commented May 7, 2017 via email

@vstinner
Copy link
Member Author

It was decided to not blacklist specific macOS versions, but just expect that users upgrade to the latest version which are now fixed. So I abandon my change.

@vstinner vstinner closed this May 19, 2017
@vstinner vstinner deleted the poll_sierra branch May 19, 2017 06:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

5 participants