Using TLS keeps data localized to the true thread it's kept in. It's kept on the call stack. Basically, this means that private data that persists only for a single exec round won't cause an MP collision when two real threads compete over the same object. example: this_player()