On 9/1/21 6:04 PM, Zebediah Figura (she/her) wrote:
I think these tests could be more extensive. For example:
- What happens if you try to perform a non-exclusive wait while an
exclusive wait is in progress? i.e. the inverse of the test added here.
- Can we verify that exclusive waits are specific to a given socket
(i.e. you can simultaneously do an exclusive wait on two different sockets?)
Can we test that exclusive waits apply if two unequal sets overlap?
Can you do an exclusive wait on the same socket from two different
threads?
There's also a part of me that would like to know what can possibly be the point of this API; it's hard to even think of what "reasonable" behaviour is otherwise. Do you happen to know?
My best guess is that it's meant to explicitly interrupt poll requests somehow (what, I/O cancellation wasn't good enough for them?), in which case it'd be good to explicitly confirm or refute that the "exclusive" poll really does act like a normal poll, and doesn't e.g. return immediately.
One more thing I meant to say: test_poll() is already big enough as it is, and the placement of these tests before the "basic" tests is not great either. I'd recommend putting all of the exclusive tests in a separate function.