private void OnTimeProcess(AwaiterItem item) { RPCPacket response = new RPCPacket(); response.Status = (short)StatusCode.REQUEST_TIMEOUT; response.Data = new object[] { $"Request {item.Request.Url} time out!" }; Completed(item, response); }
public bool Completed(AwaiterItem item, RPCPacket data) { if (item.Completed(data)) { item.Response = null; item.Request = null; return(true); } return(false); }
public (int, TaskCompletionSource <Response>) Create(Request request, Type[] resultType, int timeout = 1000 * 100) { int id = 0; long expiredTime; lock (this) { mID++; if (mID >= mEndID) { mID = mStartID; } id = mID; } expiredTime = TimeWatch.GetElapsedMilliseconds() + timeout; var item = new AwaiterItem(); item.ID = id; item.ResultType = resultType; item.Request = request; mAwaiterItemGroup.Set(item.ID, item); return(id, item.Create(expiredTime)); }
public void Set(int id, AwaiterItem item) { mItems[id] = item; }
public void Set(int id, AwaiterItem item) { mGroups[id % Groups].Set(id, item); }