Skip to content

Commit 5ae38b3

Browse files
prevent two deletions because of two subsequent disconnects
1 parent 3cff467 commit 5ae38b3

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

nicegui/client.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,9 +237,7 @@ def on_disconnect(self, handler: Union[Callable[..., Any], Awaitable]) -> None:
237237

238238
def handle_handshake(self, next_message_id: Optional[int]) -> None:
239239
"""Cancel pending disconnect task and invoke connect handlers."""
240-
if self._delete_task:
241-
self._delete_task.cancel()
242-
self._delete_task = None
240+
self._cancel_delete_task()
243241
self._num_connections += 1
244242
if next_message_id is not None:
245243
self.outbox.try_rewind(next_message_id)
@@ -251,6 +249,7 @@ def handle_handshake(self, next_message_id: Optional[int]) -> None:
251249

252250
def handle_disconnect(self) -> None:
253251
"""Wait for the browser to reconnect; invoke disconnect handlers if it doesn't."""
252+
self._cancel_delete_task()
254253
self._num_connections -= 1
255254
for t in self.disconnect_handlers:
256255
self.safe_invoke(t)
@@ -263,6 +262,11 @@ async def delete_content() -> None:
263262
self.delete()
264263
self._delete_task = background_tasks.create(delete_content())
265264

265+
def _cancel_delete_task(self) -> None:
266+
if self._delete_task:
267+
self._delete_task.cancel()
268+
self._delete_task = None
269+
266270
def handle_event(self, msg: Dict) -> None:
267271
"""Forward an event to the corresponding element."""
268272
with self:

0 commit comments

Comments
 (0)