can more the Unlock() out of both branches since the condition is only comparing the pointer