For Tic-Tac-Toe, you are given 1s for the first round and 100ms for the next rounds. That duration is measured between the moment when we start sending you some inputs and the time we read your output.
In practice, you’ll have more than 1s between the start of your program and the timeout. But that extra time (before we start sending inputs) isn’t guaranteed at all! You also have some extra milliseconds after your output and the next read that aren’t guaranteed either.
Btw, the code used for the CodinGame SDK is not the same as the one used in production. And regarding the cpu time vs real time, feel free to open another thread if you want to open a debate.