On Thu, 11 Nov 2021 17:22:15 +1100, Chris Angelico wrote: > Threads aren't the point here - signals happen immediately.
Actually, signals are not delivered immediately. Signals are delivered the next time the process gets its turn on CPU. The process scheduler will make process runnable and the process will check for any pending signals first and will execute the handler. It is possible to have several SIGINT signals pending, for instance when I nervously press ctrl- C several times. However, signals are not processed as a part of the normal flow of the process and are processed sequentially.. When the process finds a pending signal, it executes the registered signal handler. It's always the same signal handler, unless signal handler is changed within the signal handler. After the signals are delivered, the process continues its normal operation until its CPU quantum expires or until initiates a synchronous I/O operation, as is the case with all normal read operations. BTW, that's the case on both Unix/Linux systems and Windows systems. -- Mladen Gogala Database Consultant https://dbwhisperer.wordpress.com -- https://mail.python.org/mailman/listinfo/python-list