Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 22 additions & 12 deletions cassandra/cluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -4340,7 +4340,7 @@
self._scheduled_tasks.discard(task)
fn, args, kwargs = task
kwargs = dict(kwargs)
future = self._executor.submit(fn, *args, **kwargs)

Check failure on line 4343 in cassandra/cluster.py

View workflow job for this annotation

GitHub Actions / test libev (3.12)

cannot schedule new futures after shutdown
future.add_done_callback(self._log_if_failed)
else:
self._queue.put_nowait((run_at, i, task))
Expand Down Expand Up @@ -4967,16 +4967,21 @@
# -- prevents case where _final_result is set, then a callback is
# added and executed on the spot, then executed again as a
# registered callback
to_call = tuple(
partial(fn, response, *args, **kwargs)
for (fn, args, kwargs) in self._callbacks
)
callbacks = self._callbacks
if callbacks:
to_call = tuple(
partial(fn, response, *args, **kwargs)
for (fn, args, kwargs) in callbacks
)
else:
to_call = None

self._event.set()

# apply each callback
for callback_partial in to_call:
callback_partial()
if to_call:
for callback_partial in to_call:
callback_partial()

def _set_final_exception(self, response):
self._cancel_timer()
Expand All @@ -4989,15 +4994,20 @@
# prevents case where _final_exception is set, then an errback is
# added and executed on the spot, then executed again as a
# registered errback
to_call = tuple(
partial(fn, response, *args, **kwargs)
for (fn, args, kwargs) in self._errbacks
)
errbacks = self._errbacks
if errbacks:
to_call = tuple(
partial(fn, response, *args, **kwargs)
for (fn, args, kwargs) in errbacks
)
else:
to_call = None
self._event.set()

# apply each callback
for callback_partial in to_call:
callback_partial()
if to_call:
for callback_partial in to_call:
callback_partial()

def _handle_retry_decision(self, retry_decision, response, host):

Expand Down
Loading