A mutex locks the thread, which doesn't happen with TVar. For mutexes TMVar would be used.