public bool RetrieveAgent (GridRegion destination, UUID agentID, bool agentIsLeaving, out AgentData agentData, out AgentCircuitData circuitData) { agentData = null; circuitData = null; RetrieveAgentRequest request = new RetrieveAgentRequest (); request.AgentID = agentID; request.Destination = destination; request.AgentIsLeaving = agentIsLeaving; AutoResetEvent resetEvent = new AutoResetEvent (false); OSDMap result = null; m_syncMessagePoster.Get (destination.ServerURI, request.ToOSD (), osdresp => { result = osdresp; resetEvent.Set (); }); bool success = resetEvent.WaitOne (10000) && result != null; if (!success) return false; RetrieveAgentResponse response = new RetrieveAgentResponse (); response.FromOSD (result); circuitData = response.CircuitData; agentData = response.AgentData; return response.Success; }