I am looking at how the main thread interrupts TCG thread. Inside cpu-exec.c, in function cpu_tb_exec(), I can see that it executes one TB, and when this is over, it can check for events from other threads (like main thread). This is the reason why TCG thread can be interrupted.
Is my understanding correct?
If this is true, then what if this TB is running infinitely, and do not return, or it is in a very long loop? In this case, TCG thread cannot be interrupted?