Skip to content

Commit c500466

Browse files
committed
Improve CDP multithreading
1 parent 395e6a0 commit c500466

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

seleniumbase/undetected/__init__.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,8 @@ def get(self, url):
402402

403403
def add_cdp_listener(self, event_name, callback):
404404
if (
405-
self.reactor
405+
hasattr(self, "reactor")
406+
and self.reactor
406407
and self.reactor is not None
407408
and isinstance(self.reactor, Reactor)
408409
):
@@ -411,7 +412,11 @@ def add_cdp_listener(self, event_name, callback):
411412
return False
412413

413414
def clear_cdp_listeners(self):
414-
if self.reactor and isinstance(self.reactor, Reactor):
415+
if (
416+
hasattr(self, "reactor")
417+
and self.reactor
418+
and isinstance(self.reactor, Reactor)
419+
):
415420
self.reactor.handlers.clear()
416421

417422
def window_new(self, url=None):
@@ -581,7 +586,11 @@ def quit(self):
581586
finally:
582587
with suppress(Exception):
583588
self.service._terminate_process()
584-
if self.reactor and hasattr(self.reactor, "event"):
589+
if (
590+
hasattr(self, "reactor")
591+
and self.reactor
592+
and hasattr(self.reactor, "event")
593+
):
585594
logger.debug("Shutting down Reactor")
586595
with suppress(Exception):
587596
self.reactor.event.set()

seleniumbase/undetected/cdp_driver/connection.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -292,16 +292,16 @@ async def aclose(self):
292292
Closes the websocket connection. Shouldn't be called manually by users.
293293
"""
294294
if self.websocket and self.websocket.state is not State.CLOSED:
295-
if self.listener and self.listener.running:
296-
self.listener.cancel()
297-
self.enabled_domains.clear()
298295
try:
299296
await self.websocket.close()
300297
except Exception:
301298
logger.debug(
302299
"\n❌ Error closing websocket connection to %s",
303300
self.websocket_url
304301
)
302+
if self.listener and self.listener.running:
303+
self.listener.cancel()
304+
self.enabled_domains.clear()
305305
logger.debug(
306306
"\n❌ Closed websocket connection to %s", self.websocket_url
307307
)
@@ -549,8 +549,7 @@ async def listener_loop(self):
549549
except asyncio.TimeoutError:
550550
self.idle.set()
551551
# Pause for a moment.
552-
# await asyncio.sleep(self.time_before_considered_idle / 10)
553-
await asyncio.sleep(0.015)
552+
await asyncio.sleep(self.time_before_considered_idle / 10)
554553
continue
555554
except (Exception,) as e:
556555
logger.debug(

0 commit comments

Comments
 (0)