Understanding asynchronous invocations