Needs locks to work