Did you mean to use the `WAITING_TIME` macro here? Perhaps would be better named `DEFAULT_MAX_WAIT` or `DEFAULT_TAKE_TIMEOUT`. Also this function name is confusing to me. Is there a lock?