Skip to content

Commit 9c08b02

Browse files
committed
easiest deadlock fix?
1 parent c54fc7a commit 9c08b02

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/replit_river/server_transport.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,9 @@ async def _get_or_create_session(
9797
session_id: str,
9898
websocket: WebSocketCommonProtocol,
9999
) -> Session:
100+
session_to_close: Optional[Session] = None
101+
new_session: Optional[Session] = None
100102
async with self._session_lock:
101-
session_to_close: Optional[Session] = None
102-
new_session: Optional[Session] = None
103103
if to_id not in self._sessions:
104104
logger.info(
105105
'Creating new session with "%s" using ws: %s', to_id, websocket.id
@@ -149,10 +149,12 @@ async def _get_or_create_session(
149149
except FailedSendingMessageException as e:
150150
raise e
151151

152-
if session_to_close:
153-
logger.info("Closing stale session %s", session_to_close.session_id)
154-
await session_to_close.close()
155152
self._set_session(new_session)
153+
154+
if session_to_close:
155+
logger.info("Closing stale session %s", session_to_close.session_id)
156+
await session_to_close.close()
157+
156158
return new_session
157159

158160
async def _send_handshake_response(

0 commit comments

Comments
 (0)