Skip to content

Commit e3b83b0

Browse files
Goodbye session_lock
1 parent 6d99316 commit e3b83b0

File tree

1 file changed

+20
-23
lines changed

1 file changed

+20
-23
lines changed

src/replit_river/v2/client_transport.py

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,6 @@ def __init__(
7171
self._rate_limiter = LeakyBucketRateLimit(
7272
transport_options.connection_retry_options
7373
)
74-
# We want to make sure there's only one session creation at a time
75-
self._create_session_lock = asyncio.Lock()
7674

7775
async def _close_session(self) -> None:
7876
logger.info(f"start closing session {self._transport_id}")
@@ -94,29 +92,28 @@ async def get_or_create_session(self) -> Session:
9492
If we have a "closed" session, mint a whole new session.
9593
If we have a disconnected session, attempt to start a new WS and use it.
9694
"""
97-
async with self._create_session_lock:
98-
existing_session = self._session
99-
if not existing_session:
100-
logger.info("Creating new session")
101-
new_session = Session(
102-
transport_id=self._transport_id,
103-
to_id=self._server_id,
104-
session_id=self.generate_nanoid(),
105-
transport_options=self._transport_options,
106-
close_session_callback=self._delete_session,
107-
retry_connection_callback=self._retry_connection,
108-
)
95+
existing_session = self._session
96+
if not existing_session:
97+
logger.info("Creating new session")
98+
new_session = Session(
99+
transport_id=self._transport_id,
100+
to_id=self._server_id,
101+
session_id=self.generate_nanoid(),
102+
transport_options=self._transport_options,
103+
close_session_callback=self._delete_session,
104+
retry_connection_callback=self._retry_connection,
105+
)
109106

110-
self._session = new_session
111-
existing_session = new_session
112-
await existing_session.start_serve_responses()
107+
self._session = new_session
108+
existing_session = new_session
109+
await existing_session.start_serve_responses()
113110

114-
await existing_session.ensure_connected(
115-
client_id=self._client_id,
116-
rate_limiter=self._rate_limiter,
117-
uri_and_metadata_factory=self._uri_and_metadata_factory,
118-
)
119-
return existing_session
111+
await existing_session.ensure_connected(
112+
client_id=self._client_id,
113+
rate_limiter=self._rate_limiter,
114+
uri_and_metadata_factory=self._uri_and_metadata_factory,
115+
)
116+
return existing_session
120117

121118
async def _establish_new_connection(
122119
self,

0 commit comments

Comments
 (0)