Eryk Sun <eryk...@gmail.com> added the comment:

FYI, waiting for a condition variable can cause a thread to enter a wait state 
that's interruptible, in theory, but the mechanism is different since condition 
variables and SRW locks are pointer-sized values in user space, instead of NT 
objects in kernel space. The current implementation is based on the system call 
NtWaitForAlertByThreadId(address, timeout), which enters the 
"WrAlertByThreadId" wait state. The address parameter is that of the SRW lock. 
The kernel sets this as the 'object' for the wait, but the wait is actually 
satisfied by alerting the thread directly via NtAlertThreadByThreadId(tid). 
ISTM, they could have added a function that calls the latter to cancel a wait 
on a given thread. That would have been useful for Ctrl+C since the handler 
executes on a new thread.

----------

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

Reply via email to