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

The SIGINT event gets created when the _signal extension module is imported. 
Until then, _PyOS_SigintEvent() returns NULL. But currently all code that calls 
_PyOS_SigintEvent() assumes it returns a valid handle. This has to be fixed to 
support Py_InitializeEx(0). 

For example, pysleep could call WinAPI Sleep on the main thread if the 
interrupt event isn't configured:

        ul_millis = (unsigned long)millisecs;
        hInterruptEvent = _PyOS_SigintEvent();

        if (ul_millis == 0 || !hInterruptEvent || !_PyOS_IsMainThread()) {
            Py_BEGIN_ALLOW_THREADS
            Sleep(ul_millis);
            Py_END_ALLOW_THREADS
            break;
        }

----------
components: +Windows
nosy: +eryksun, paul.moore, steve.dower, tim.golden, zach.ware
type:  -> behavior
versions: +Python 3.10, Python 3.9

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

Reply via email to