Implication of multithreading with a model without mutexes in libtorch

So I am currently implementing distributed algorithms in libtorch. I purposely refused to do any form of synchronization to see if lib-torch does any. i don’t seem to have any troubles with multiple threads using the same pointer to a model for forward pass. how is this working under the hood. I would need some more clarification. thanks. is being copied, is there a better way to optimize this?