| 1458 | } |
| 1459 | } |
| 1460 | |
| 1461 | void SC::AsyncEventLoop::Internal::clearSequence(AsyncSequence& sequence) |
| 1462 | { |
| 1463 | while (AsyncRequest* async = sequence.submissions.dequeueFront()) |
| 1464 | { |
| 1465 | async->markAsFree(); |
| 1466 | } |
| 1467 | untrackSequenceIfIdle(sequence); |
| 1468 | } |
| 1469 | |
| 1470 | SC::AsyncLoopTimeout* SC::AsyncEventLoop::Internal::findEarliestLoopTimeout() const { return activeLoopTimeouts.front; } |
| 1471 | |
| 1472 | void SC::AsyncEventLoop::Internal::invokeExpiredTimers(AsyncEventLoop& eventLoop, TimeMs currentTime) |
| 1473 | { |
| 1474 | // A callback can remove or destroy any timer, so never retain list pointers across callback invocation. |
| 1475 | while (AsyncLoopTimeout* current = activeLoopTimeouts.front) |
| 1476 | { |
| 1477 | if (currentTime.milliseconds < current->expirationTime.milliseconds) |
| 1478 | { |
| 1479 | break; |
| 1480 | } |
nothing calls this directly
no test coverage detected