Skip to content

Commit f2ade07

Browse files
committed
Make sure adapter isn't ran twice and does not close Client on set
1 parent 7db6c91 commit f2ade07

File tree

4 files changed

+12
-6
lines changed

4 files changed

+12
-6
lines changed

twitchio/client.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ def __init__(
165165
self._ready_event.clear()
166166

167167
self.__waiter: asyncio.Event = asyncio.Event()
168+
self._setup_called = False
168169

169170
@property
170171
def adapter(self) -> BaseAdapter:
@@ -188,10 +189,12 @@ async def set_adapter(self, adapter: BaseAdapter) -> None:
188189
None
189190
"""
190191
if self._adapter:
191-
await self._adapter.close()
192+
await self._adapter.close(False)
192193

193194
self._adapter = adapter
194-
await self._adapter.run()
195+
196+
if self._setup_called:
197+
await self._adapter.run()
195198

196199
@property
197200
def tokens(self) -> MappingProxyType[str, TokenMappingData]:
@@ -429,6 +432,7 @@ async def login(self, *, token: str | None = None, load_tokens: bool = True, sav
429432
self._user = await partial.user() if self._fetch_self else partial
430433

431434
await self.setup_hook()
435+
self._setup_called = True
432436

433437
async def __aenter__(self) -> Self:
434438
return self

twitchio/web/aio_adapter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ async def event_startup(self) -> None:
196196
async def event_shutdown(self) -> None:
197197
logger.info("Successfully shutdown TwitchIO <%s>.", self.__class__.__qualname__)
198198

199-
async def close(self) -> None:
199+
async def close(self, *args: Any, **kwargs: Any) -> None:
200200
if self._runner_task is not None:
201201
try:
202202
self._runner_task.cancel()

twitchio/web/starlette_adapter.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ async def event_startup(self) -> None:
194194
async def event_shutdown(self) -> None:
195195
await self.close()
196196

197-
async def close(self) -> None:
197+
async def close(self, with_client: bool = True) -> None:
198198
if self._closing:
199199
return
200200

@@ -211,7 +211,9 @@ async def close(self) -> None:
211211
)
212212

213213
self._runner_task = None
214-
await self.client.close()
214+
215+
if with_client:
216+
await self.client.close()
215217

216218
logger.info("Successfully shutdown TwitchIO <%s>.", self.__class__.__qualname__)
217219

twitchio/web/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ async def event_startup(self) -> None: ...
9494
async def event_shutdown(self) -> None: ...
9595

9696
@abc.abstractmethod
97-
async def close(self) -> None: ...
97+
async def close(self, *args: Any, **kwargs: Any) -> None: ...
9898

9999
@abc.abstractmethod
100100
async def run(self, host: str | None = None, port: int | None = None) -> None: ...

0 commit comments

Comments
 (0)