Why defer_lock since your next line is `l.lock()`?