@@ -17,7 +17,15 @@ static AwaiterFactory()
1717
1818 const int COUNT = 1024 * 1024 ;
1919
20- public AwaiterFactory ( int startid = 1 , int end = 100000000 )
20+ public const int CLIENT_START = 10000000 ;
21+
22+ public const int CLIENT_END = 19999999 ;
23+
24+ public const int SERVER_START = 20000000 ;
25+
26+ public const int SERVER_END = 29999999 ;
27+
28+ public AwaiterFactory ( int startid , int end )
2129 {
2230 mID = startid ;
2331 mStartID = startid ;
@@ -40,8 +48,8 @@ public AwaiterFactory(int startid = 1, int end = 100000000)
4048
4149 private void OnTimeProcess ( AwaiterItem item )
4250 {
43- Response response = new Response ( ) ;
44- response . Status = ( short ) ResponseCode . REQUEST_TIMEOUT ;
51+ RPCPacket response = new RPCPacket ( ) ;
52+ response . Status = ( short ) StatusCode . REQUEST_TIMEOUT ;
4553 response . Data = new object [ ] { $ "Request { item . Request . Url } time out!" } ;
4654 Completed ( item , response ) ;
4755 }
@@ -51,15 +59,15 @@ private void OnTimeout(object state)
5159 try
5260 {
5361 mTimer . Change ( - 1 , - 1 ) ;
54- long timeout = TimeWatch . GetElapsedMilliseconds ( ) ;
62+ long timeout = TimeWatch . GetElapsedMilliseconds ( ) ;
5563 var items = mAwaiterItemGroup . GetTimeouts ( timeout ) ;
5664 if ( items . Count > 0 )
5765 {
5866 for ( int i = 0 ; i < items . Count ; i ++ )
5967 {
6068 mTimeDispatch . Enqueue ( items [ i ] ) ;
6169 }
62-
70+
6371 }
6472 }
6573 catch
@@ -77,8 +85,9 @@ internal AwaiterItem GetItem(int id)
7785 return mAwaiterItemGroup . Get ( id ) ;
7886 }
7987
80- public ( int , TaskCompletionSource < Response > ) Create ( Request request , Type [ ] resultType , int timeout = 1000 * 100 )
88+ public ( int , TaskCompletionSource < RPCPacket > ) Create ( RPCPacket request , Type [ ] resultType , int timeout = 1000 * 10 )
8189 {
90+ request . NeedReply = true ;
8291 int id = 0 ;
8392 long expiredTime ;
8493 lock ( this )
@@ -87,7 +96,7 @@ internal AwaiterItem GetItem(int id)
8796 if ( mID >= mEndID )
8897 mID = mStartID ;
8998 id = mID ;
90-
99+
91100 }
92101 expiredTime = TimeWatch . GetElapsedMilliseconds ( ) + timeout ;
93102 var item = new AwaiterItem ( ) ;
@@ -98,7 +107,7 @@ internal AwaiterItem GetItem(int id)
98107 return ( id , item . Create ( expiredTime ) ) ;
99108 }
100109
101- public bool Completed ( AwaiterItem item , Response data )
110+ public bool Completed ( AwaiterItem item , RPCPacket data )
102111 {
103112 if ( item . Completed ( data ) )
104113 {
@@ -161,13 +170,14 @@ public AwaiterItem Get(int id)
161170
162171 public void GetTimeouts ( List < AwaiterItem > items , double time )
163172 {
164- foreach ( var item in mItems . Values )
165- {
166- if ( time > item . TimeOut )
173+ if ( mItems . Count > 0 )
174+ foreach ( var item in mItems . Values )
167175 {
168- items . Add ( Get ( item . ID ) ) ;
176+ if ( time > item . TimeOut )
177+ {
178+ items . Add ( Get ( item . ID ) ) ;
179+ }
169180 }
170- }
171181 }
172182 }
173183 }
0 commit comments