I think `$expire` should be `$timeout` which indicates how long to wait for getting a mutex if it is not available currently.