You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 5b5f991
Browse filesBrowse the repository at this point in the historyBrowse files
fix(pybind): keep the connection alive across a Ctrl-C guarded call
query(), execute() and query_as_arrow() now hold the connection state for
the whole call, so the ClientContext the SIGINT handler interrupts outlives
the guard even if another thread closes the connection. Before, a close()
from another thread destroyed the Connection while the main thread was
still inside the query, after waiting for it with the GIL held.
The handler's signal safety is pinned: static_asserts that both atomics it
touches are lock-free, and a comment that ClientContext::interrupt() must
stay a store to an atomic flag. Comments also state that prepare() is not
guarded and why the handler swap is not wrapped in a signal mask. A failure
of the main-thread/handler check is reported as unraisable, except during
interpreter shutdown, instead of being swallowed; the query still runs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0 commit comments