diff options
| author | 2020-02-15 12:51:37 -0800 | |
|---|---|---|
| committer | 2020-02-15 12:51:37 -0800 | |
| commit | 02f5e2fe019f332cb6b9e79b63fee54e41b66732 (patch) | |
| tree | bea8e67df1b00e169d1e8e7b4364646349290445 | |
| parent | API: add argument to force recreation of the session (diff) | |
API: close existing open session before recreating it
| -rw-r--r-- | bot/api.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/bot/api.py b/bot/api.py index 37c1497fc..8cb429cd5 100644 --- a/bot/api.py +++ b/bot/api.py @@ -60,16 +60,17 @@ class APIClient: Create the aiohttp session with `session_kwargs` and set the ready event. `session_kwargs` is merged with `_default_session_kwargs` and overwrites its values. + If an open session already exists, it will first be closed. """ + await self.close() self.session = aiohttp.ClientSession(**{**self._default_session_kwargs, **session_kwargs}) self._ready.set() async def close(self) -> None: """Close the aiohttp session and unset the ready event.""" - if not self._ready.is_set(): - return + if self.session: + await self.session.close() - await self.session.close() self._ready.clear() def recreate(self, force: bool = False, **session_kwargs) -> None: |