Skip to content

Commit b8fefda

Browse files
committed
Avoid multiple async call in HTTP
1 parent 629056f commit b8fefda

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

twitchio/http.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,9 @@ async def close(self) -> None:
430430
logger.debug("%s session closed successfully.", self.__class__.__qualname__)
431431

432432
async def request(self, route: Route) -> RawResponse | str | None:
433-
await self._init_session()
433+
if not self._session_set:
434+
await self._init_session()
435+
434436
assert self._session is not None
435437

436438
logger.debug("Attempting a request to %r with %s.", route, self.__class__.__qualname__)
@@ -466,7 +468,9 @@ async def request_json(self, route: Route) -> Any:
466468
return data
467469

468470
async def _request_asset_head(self, url: str) -> dict[str, str]:
469-
await self._init_session()
471+
if not self._session_set:
472+
await self._init_session()
473+
470474
assert self._session is not None
471475

472476
logger.debug('Attempting to request headers for asset "%s" with %s.', url, self.__class__.__qualname__)
@@ -479,7 +483,9 @@ async def _request_asset_head(self, url: str) -> dict[str, str]:
479483
return dict(resp.headers)
480484

481485
async def _request_asset(self, asset: Asset, *, chunk_size: int = 1024) -> AsyncIterator[bytes]:
482-
await self._init_session()
486+
if not self._session_set:
487+
await self._init_session()
488+
483489
assert self._session is not None
484490

485491
logger.debug('Attempting a request to asset "%r" with %s.', asset, self.__class__.__qualname__)

0 commit comments

Comments
 (0)