has_lock defaults to False