Wondering why this extra step? Can't `d` be returned to the caller which gets fired when the lock is acquired?