I have a system of callback functions to organize the initialization and run time processes of my engine. I have a class that manages all of these function pointers and they are stored in a STL vector container. They are called through a wrapper class like (\*iterator)->execute();

When I call these pointers I do it in a for loop. So if I have 20 function pointers registered it will go through all 20 and find the matching type and call the function through the wrapper class.

My question is, when the pointer function is called does the loop wait for that function to end its execution and then continue looping or does the loop continue to call functions while the first function is running? Mind you this is all happening on the same thread.

I did a little testing and it seems that the loop does not pause while executing other function. This seems like some sort of psuedo-threading? ... that doesn't seem right. The results may not be correct, however, as I am using std::cout to print results to the console, so I don't know if this appears to be happening due to some ostream functionality i'm unaware of.