private static void RequestTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e, JetMethod method) { JetPeer peer = (JetPeer)sender; lock (peer.openRequests) { method.RequestTimer.Stop(); int id = method.GetRequestId(); if (peer.openRequests.ContainsKey(id)) { method = peer.openRequests[id]; peer.openRequests.Remove(id); JObject response = new JObject(); response["jsonrpc"] = "2.0"; response["id"] = id; JObject error = new JObject(); error["code"] = -32100; error["message"] = "timeout while waiting for response"; response["error"] = error; lock (method) { method.CallResponseCallback(false, response); } } } }
private void HandleResponse(JObject json) { JToken token = json["id"]; if (token != null) { int id = token.ToObject <int>(); JetMethod method = null; lock (this.openRequests) { if (this.openRequests.ContainsKey(id)) { method = this.openRequests[id]; this.openRequests.Remove(id); method.RequestTimer.Stop(); lock (method) { method.CallResponseCallback(true, json); } } } } }