William Schwartz <wkschwa...@gmail.com> added the comment:

> In Windows, os.kill() is a rather confused function.

I know how it feels.

To be honest, I don't have an opinion about whether the steps I laid out ought 
to work. I just reported it because the SystemError indicates that a C-API 
function was returning non-NULL even after PyErr_Occurred() returns true. I 
think that's what you're referring to here...

> it doesn't clear the error that was set as a result of the 
> GenerateConsoleCtrlEvent() call, which causes SystemError to be raised.

...but I lost you on where that's happening and why. Frankly, Windows IPC is 
not in my wheelhouse.

>>  Oddly, `echo %errorlevel%` will print `0` rather than `-1073741510` 
>
> There's nothing odd about that.

Here's why I thought it was odd. The following session is from the Windows 
Command shell inside *Command Prompt* (not Windows Terminal):

 C:\Users\wksch>python --version
 Python 3.9.1
 C:\Users\wksch>python -c"import os, signal, time; os.kill(os.getpid(), 
signal.CTRL_C_EVENT); time.sleep(1)"
 Traceback (most recent call last):
   File "<string>", line 1, in <module>
 KeyboardInterrupt
 ^C
 C:\Users\wksch>echo %errorlevel%
 -1073741510

In the Windows Command shell inside *Windows Terminal* (not Command Prompt):

 C:\Users\wksch>python -c"import os, signal, time; os.kill(os.getpid(), 
signal.CTRL_C_EVENT); time.sleep(1)"

 C:\Users\wksch>echo %errorlevel%
 0

 C:\Users\wksch>python -c"raise KeyboardInterrupt"
 Traceback (most recent call last):
   File "<string>", line 1, in <module>
 KeyboardInterrupt
 ^C
 C:\Users\wksch>echo %errorlevel%
 -1073741510

----------

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

Reply via email to