aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2020-02-15 12:51:37 -0800
committerGravatar MarkKoz <[email protected]>2020-02-15 12:51:37 -0800
commit02f5e2fe019f332cb6b9e79b63fee54e41b66732 (patch)
treebea8e67df1b00e169d1e8e7b4364646349290445
parentAPI: add argument to force recreation of the session (diff)
API: close existing open session before recreating it
-rw-r--r--bot/api.py7
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: