E.g. in Ruby you can lock/unlock a mutex, but the normal way to do it would be to pass a block to `Mutex#synchronize` which is essentially just
def synchronize lock begin yield ensure unlock end end
lock.synchronize { # protected code here }