Ultimately ##thread-interrupt! calls ##thread-int! in _thread.scm<br><br>Thread-int! sets thread-result of interrupted thread to (lambda () (your-thunk) (##void)) and insert interrupted thread on run-queue.<br><br>thread-result is passed as second argument to thread-restore! and if you look at ___JUMP_THREAD_RESTORE2<br>
in gambit.h , the last step is a jump to this procedure.<br><br>So it is executed in the interrupted thread. If interrupting thread and interrupted thread are the same, then it is just a call to the function.<br>