Inheritance: System.Threading.SynchronizationContext
        public void OnResponseMessage(ResponseMessage response, MessageHandleContext currentAtomicContext)
        {
            ResponseWaitingItem waitingItem;

            if (_responseWaitingItems.TryRemove(response.RequestId, out waitingItem) == false)
            {
                return;
            }

            // Because OnResponseMessage is always called in a message loop of actor,
            // it's safe to run post callback synchronously if possible.
            // This optimization remove one message hop.
            ActorSynchronizationContext.EnableSynchronousPost(currentAtomicContext);

            waitingItem.ResponseHandler(waitingItem.TaskCompletionSource, response);
        }