MCPcopy Create free account
hub / github.com/Tencent/libco / AddTimeout

Function AddTimeout

co_routine.cpp:378–412  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

376 free ( apTimeout );
377}
378int AddTimeout( stTimeout_t *apTimeout,stTimeoutItem_t *apItem ,unsigned long long allNow )
379{
380 if( apTimeout->ullStart == 0 )
381 {
382 apTimeout->ullStart = allNow;
383 apTimeout->llStartIdx = 0;
384 }
385 if( allNow < apTimeout->ullStart )
386 {
387 co_log_err("CO_ERR: AddTimeout line %d allNow %llu apTimeout->ullStart %llu",
388 __LINE__,allNow,apTimeout->ullStart);
389
390 return __LINE__;
391 }
392 if( apItem->ullExpireTime < allNow )
393 {
394 co_log_err("CO_ERR: AddTimeout line %d apItem->ullExpireTime %llu allNow %llu apTimeout->ullStart %llu",
395 __LINE__,apItem->ullExpireTime,allNow,apTimeout->ullStart);
396
397 return __LINE__;
398 }
399 unsigned long long diff = apItem->ullExpireTime - apTimeout->ullStart;
400
401 if( diff >= (unsigned long long)apTimeout->iItemSize )
402 {
403 diff = apTimeout->iItemSize - 1;
404 co_log_err("CO_ERR: AddTimeout line %d diff %d",
405 __LINE__,diff);
406
407 //return __LINE__;
408 }
409 AddTail( apTimeout->pItems + ( apTimeout->llStartIdx + diff ) % apTimeout->iItemSize , apItem );
410
411 return 0;
412}
413inline void TakeAllTimeout( stTimeout_t *apTimeout,unsigned long long allNow,stTimeoutItemLink_t *apResult )
414{
415 if( apTimeout->ullStart == 0 )

Callers 3

co_eventloopFunction · 0.85
co_poll_innerFunction · 0.85
co_cond_timedwaitFunction · 0.85

Calls 2

co_log_errFunction · 0.85
AddTailFunction · 0.85

Tested by

no test coverage detected