Coalesce concurrent AT refresh calls for the same token.
(self, token_id: int)
| 592 | return False |
| 593 | |
| 594 | async def _refresh_at(self, token_id: int) -> bool: |
| 595 | """Coalesce concurrent AT refresh calls for the same token.""" |
| 596 | existing_task = self._refresh_futures.get(token_id) |
| 597 | if existing_task: |
| 598 | return await existing_task |
| 599 | |
| 600 | async def runner() -> bool: |
| 601 | try: |
| 602 | return await self._refresh_at_inner(token_id) |
| 603 | finally: |
| 604 | current = self._refresh_futures.get(token_id) |
| 605 | if current is task: |
| 606 | self._refresh_futures.pop(token_id, None) |
| 607 | |
| 608 | task = asyncio.create_task(runner()) |
| 609 | self._refresh_futures[token_id] = task |
| 610 | return await task |
| 611 | |
| 612 | async def _do_refresh_at(self, token_id: int, st: str, token: Optional[Token] = None) -> bool: |
| 613 | """执行 AT 刷新的核心逻辑 |
no test coverage detected