New submission from Sam Harding <samhardin...@gmail.com>:

The behaviour of select.poll() is inconsistent across MacOS versions, on MacOS 
Mojave (10.14.6) registering and polling the receiving channel of 
mp.Pipe(duplex=False) returns the event POLLOUT (ready to write to). This is 
verified by a colleagues setup.

Whereas on MacOS 11 the same scenario will not have poll() return that the 
receiving channel is ready for writing to (POLLOUT). 

Example:
###
import select
import multiprocessing as mp
recv_end, send_end = mp.Pipe(duplex=False)
poll = select.poll()
poll.register(recv_end)
print(poll.poll(1000))
###

MacOS 10.14.6 Result: 
> [(3,4)]

MacOS 11.0.1 Result:
> []

I am assuming that the MacOS 11 behaviour is should be the expected behaviour, 
and that the recv connection from a Pipe should never return that it is 
writable.

This was tested with Python 3.9.4, and 3.7.6.

----------
components: Extension Modules, macOS
messages: 397246
nosy: ned.deily, ronaldoussoren, samh42
priority: normal
severity: normal
status: open
title: Poll returns POLLOUT on Pipe read endpoint on MacOS 10.14
type: behavior
versions: Python 3.7, Python 3.9

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue44597>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to