Back in the days of coding Atari ST I was fairly familiar with what was really going on in the processor after I compiled and ran my code. I knew that it was running sequentially. And if I jumped or branched off to a subroutine, I knew that it was run that and then return. It was an event based system with a menu bar… one of the first.. but still it was a main program loop that waited for events and then acted on them, running the code to act on them, and then return to the main loop and wait for the next event.
But today with multi-code processors and multi-threaded code, I have to admit that half the time I don’t really know much about what’s really happening in the compiled code from a program flow standpoint. Does it sometimes run down two threads of code at the same time? I sort of assume that it does at times. But I don’t really know. Continue reading