You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by "lidavidm (via GitHub)" <gi...@apache.org> on 2026/01/22 08:03:45 UTC
[PR] feat(rust/core)!: define cancellation in a sensible way [arrow-adbc]
lidavidm opened a new pull request, #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905
Closes #3454.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "serramatutu (via GitHub)" <gi...@apache.org>.
serramatutu commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r3720093973
##########
rust/driver_manager/src/lib.rs:
##########
@@ -565,6 +565,31 @@ pub struct ManagedConnection {
inner: Arc<ManagedConnectionInner>,
}
+struct ConnectionCancelHandle {
+ inner: std::sync::Weak<ManagedConnectionInner>,
+}
+
+impl adbc_core::CancelHandle for ConnectionCancelHandle {
+ fn try_cancel(&self) -> Result<()> {
+ if let Some(inner) = self.inner.upgrade() {
+ if let AdbcVersion::V100 = inner.database.driver.version {
+ return Err(Error::with_message_and_status(
+ ERR_CANCEL_UNSUPPORTED,
+ Status::NotImplemented,
+ ));
+ }
+ let driver = &inner.database.driver.driver;
+ let mut connection = inner.connection.lock().unwrap();
Review Comment:
`.lock().unwrap()` adds an expectation that the thread who owns the connection cannot have panicked (mutex poison) otherwise trying to cancel any statements on that connection will also panic the canceler thread, right?
Instead of `unwrap()`, could we instead make this return an error so that a panic in the owning thread doesn't spread to canceler threads and they can deal with it gracefully?
Since the method is called `try_cancel()` I'd expect it to not panic if canceling failed for any reason.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "abonander (via GitHub)" <gi...@apache.org>.
abonander commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r2848976521
##########
rust/core/src/sync.rs:
##########
@@ -76,6 +94,11 @@ pub trait Database: Optionable<Option = OptionDatabase> {
&self,
opts: impl IntoIterator<Item = (options::OptionConnection, OptionValue)>,
) -> Result<Self::ConnectionType>;
+
+ /// Get a handle to cancel operations on this database.
+ fn get_cancel_handle(&self) -> Box<dyn CancelHandle> {
+ Box::new(NoOpCancellationHandle {})
+ }
Review Comment:
Are you going to introduce `AdbcDatabaseCancel()` to the C API?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "abonander (via GitHub)" <gi...@apache.org>.
abonander commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r2848950227
##########
rust/core/src/sync.rs:
##########
@@ -44,6 +44,24 @@ pub trait Optionable {
fn get_option_double(&self, key: Self::Option) -> Result<f64>;
}
+/// A handle to cancel an in-progress operation on a connection.
+///
+/// This is a separated handle because otherwise it would be impossible to
+/// call a `cancel` method on a connection or statement itself.
+pub trait CancelHandle: Send {
Review Comment:
https://github.com/apache/arrow-adbc/blob/e8642f824393a99d4a2ac3cde89f15b10e7f3101/c/include/arrow-adbc/adbc.h#L2133-L2134
"thread-safe" implies that this handle should be `Sync` as well since there isn't really a distinction between "can be moved between threads" and "can be called concurrently from multiple threads" in C.
##########
rust/core/src/sync.rs:
##########
@@ -44,6 +44,24 @@ pub trait Optionable {
fn get_option_double(&self, key: Self::Option) -> Result<f64>;
}
+/// A handle to cancel an in-progress operation on a connection.
+///
+/// This is a separated handle because otherwise it would be impossible to
+/// call a `cancel` method on a connection or statement itself.
+pub trait CancelHandle: Send {
+ /// Cancel the in-progress operation on a connection.
+ fn try_cancel(&self) -> Result<()>;
+}
+
+/// A cancellation handle that does nothing (because cancellation is unsupported).
+pub struct NoOpCancellationHandle;
+
+impl CancelHandle for NoOpCancellationHandle {
+ fn try_cancel(&self) -> Result<()> {
+ Ok(())
Review Comment:
Should the default be to return `ADBC_STATUS_UNKNOWN` to indicate that the operation cannot be cancelled per https://github.com/apache/arrow-adbc/blob/e8642f824393a99d4a2ac3cde89f15b10e7f3101/c/include/arrow-adbc/adbc.h#L2143
##########
rust/core/src/sync.rs:
##########
@@ -44,6 +44,24 @@ pub trait Optionable {
fn get_option_double(&self, key: Self::Option) -> Result<f64>;
}
+/// A handle to cancel an in-progress operation on a connection.
+///
+/// This is a separated handle because otherwise it would be impossible to
+/// call a `cancel` method on a connection or statement itself.
+pub trait CancelHandle: Send {
+ /// Cancel the in-progress operation on a connection.
+ fn try_cancel(&self) -> Result<()>;
Review Comment:
Are the `try_` prefix and the default to `NoOpCancellationHandle` meant to imply that this is on a best-effort basis only? Can that be more clearly documented?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "serramatutu (via GitHub)" <gi...@apache.org>.
serramatutu commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r3720093973
##########
rust/driver_manager/src/lib.rs:
##########
@@ -565,6 +565,31 @@ pub struct ManagedConnection {
inner: Arc<ManagedConnectionInner>,
}
+struct ConnectionCancelHandle {
+ inner: std::sync::Weak<ManagedConnectionInner>,
+}
+
+impl adbc_core::CancelHandle for ConnectionCancelHandle {
+ fn try_cancel(&self) -> Result<()> {
+ if let Some(inner) = self.inner.upgrade() {
+ if let AdbcVersion::V100 = inner.database.driver.version {
+ return Err(Error::with_message_and_status(
+ ERR_CANCEL_UNSUPPORTED,
+ Status::NotImplemented,
+ ));
+ }
+ let driver = &inner.database.driver.driver;
+ let mut connection = inner.connection.lock().unwrap();
Review Comment:
`.lock().unwrap()` adds an expectation that the thread who owns the `adbc_ffi::FFI_AdbcConnection` cannot have panicked (mutex poison) otherwise trying to cancel any statements on that connection will also panic the canceler thread, right?
Instead of `unwrap()`, could we instead make this return an error so that a panic in the owning thread doesn't spread to canceler threads and they can deal with it gracefully?
Since the method is called `try_cancel()` I'd expect it to not panic if canceling failed for any reason, including a panic in a neighbor thread.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "lidavidm (via GitHub)" <gi...@apache.org>.
lidavidm commented on PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#issuecomment-3874835106
CC @felipecrv @abonander @eitsupi
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "lidavidm (via GitHub)" <gi...@apache.org>.
lidavidm commented on PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#issuecomment-5199779340
Changes:
- Don't unwrap() inside driver manager
- Restore `cancel` (but mark it `#[deprecated]`) to avoid the backwards compatibility break (but it will eventually be removed)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "felipecrv (via GitHub)" <gi...@apache.org>.
felipecrv commented on PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#issuecomment-3948076365
I started looking at the code and got confused. Are you going to cancel any statement currently running in the connection or do I get one handle per `Statement`?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "serramatutu (via GitHub)" <gi...@apache.org>.
serramatutu commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r3720093973
##########
rust/driver_manager/src/lib.rs:
##########
@@ -565,6 +565,31 @@ pub struct ManagedConnection {
inner: Arc<ManagedConnectionInner>,
}
+struct ConnectionCancelHandle {
+ inner: std::sync::Weak<ManagedConnectionInner>,
+}
+
+impl adbc_core::CancelHandle for ConnectionCancelHandle {
+ fn try_cancel(&self) -> Result<()> {
+ if let Some(inner) = self.inner.upgrade() {
+ if let AdbcVersion::V100 = inner.database.driver.version {
+ return Err(Error::with_message_and_status(
+ ERR_CANCEL_UNSUPPORTED,
+ Status::NotImplemented,
+ ));
+ }
+ let driver = &inner.database.driver.driver;
+ let mut connection = inner.connection.lock().unwrap();
Review Comment:
`.lock().unwrap()` adds an expectation that the thread who owns the `adbc_ffi::FFI_AdbcConnection` cannot have panicked (mutex poison) otherwise trying to cancel any statements on that connection will also panic the canceler thread, right?
Instead of `unwrap()`, could we instead make this return an error so that a panic in the owning thread doesn't spread to canceler threads and they can deal with it gracefully?
Since the method is called `try_cancel()` I'd expect it to not panic if canceling failed for any reason.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust): define cancellation in a sensible way [arrow-adbc]
Posted by "lidavidm (via GitHub)" <gi...@apache.org>.
lidavidm merged PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "lidavidm (via GitHub)" <gi...@apache.org>.
lidavidm commented on PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#issuecomment-3942111722
Any concerns here?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "lidavidm (via GitHub)" <gi...@apache.org>.
lidavidm commented on PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#issuecomment-3948094701
One per statement (the handle has a weak reference to the specific statement)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "abonander (via GitHub)" <gi...@apache.org>.
abonander commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r2848968066
##########
rust/core/src/sync.rs:
##########
@@ -44,6 +44,24 @@ pub trait Optionable {
fn get_option_double(&self, key: Self::Option) -> Result<f64>;
}
+/// A handle to cancel an in-progress operation on a connection.
+///
+/// This is a separated handle because otherwise it would be impossible to
+/// call a `cancel` method on a connection or statement itself.
+pub trait CancelHandle: Send {
+ /// Cancel the in-progress operation on a connection.
+ fn try_cancel(&self) -> Result<()>;
Review Comment:
It's only sort-of implied by https://github.com/apache/arrow-adbc/blob/e8642f824393a99d4a2ac3cde89f15b10e7f3101/c/include/arrow-adbc/adbc.h#L2130-L2131
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "serramatutu (via GitHub)" <gi...@apache.org>.
serramatutu commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r3720093973
##########
rust/driver_manager/src/lib.rs:
##########
@@ -565,6 +565,31 @@ pub struct ManagedConnection {
inner: Arc<ManagedConnectionInner>,
}
+struct ConnectionCancelHandle {
+ inner: std::sync::Weak<ManagedConnectionInner>,
+}
+
+impl adbc_core::CancelHandle for ConnectionCancelHandle {
+ fn try_cancel(&self) -> Result<()> {
+ if let Some(inner) = self.inner.upgrade() {
+ if let AdbcVersion::V100 = inner.database.driver.version {
+ return Err(Error::with_message_and_status(
+ ERR_CANCEL_UNSUPPORTED,
+ Status::NotImplemented,
+ ));
+ }
+ let driver = &inner.database.driver.driver;
+ let mut connection = inner.connection.lock().unwrap();
Review Comment:
`.lock().unwrap()` adds an expectation that the thread who owns the connection cannot have panicked (mutex poison) otherwise trying to cancel any statements on that connection will also panic the canceler thread, right?
Instead of `unwrap()`, could we instead make this return an error so that a panic in the owning thread doesn't spread to canceler threads and they can deal with it gracefully?
Also since the method is called `try_cancel()` I'd expect it to not panic if canceling failed for any reason.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "abonander (via GitHub)" <gi...@apache.org>.
abonander commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r2848976521
##########
rust/core/src/sync.rs:
##########
@@ -76,6 +94,11 @@ pub trait Database: Optionable<Option = OptionDatabase> {
&self,
opts: impl IntoIterator<Item = (options::OptionConnection, OptionValue)>,
) -> Result<Self::ConnectionType>;
+
+ /// Get a handle to cancel operations on this database.
+ fn get_cancel_handle(&self) -> Box<dyn CancelHandle> {
+ Box::new(NoOpCancellationHandle {})
+ }
Review Comment:
Are you going to introduce `AdbcDatabaseCancel()` to the C API? Otherwise I don't see why this needs to exist.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "lidavidm (via GitHub)" <gi...@apache.org>.
lidavidm commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r2849877250
##########
rust/core/src/sync.rs:
##########
@@ -76,6 +94,11 @@ pub trait Database: Optionable<Option = OptionDatabase> {
&self,
opts: impl IntoIterator<Item = (options::OptionConnection, OptionValue)>,
) -> Result<Self::ConnectionType>;
+
+ /// Get a handle to cancel operations on this database.
+ fn get_cancel_handle(&self) -> Box<dyn CancelHandle> {
+ Box::new(NoOpCancellationHandle {})
+ }
Review Comment:
I am: https://github.com/apache/arrow-adbc/issues/3910
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "serramatutu (via GitHub)" <gi...@apache.org>.
serramatutu commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r3720093973
##########
rust/driver_manager/src/lib.rs:
##########
@@ -565,6 +565,31 @@ pub struct ManagedConnection {
inner: Arc<ManagedConnectionInner>,
}
+struct ConnectionCancelHandle {
+ inner: std::sync::Weak<ManagedConnectionInner>,
+}
+
+impl adbc_core::CancelHandle for ConnectionCancelHandle {
+ fn try_cancel(&self) -> Result<()> {
+ if let Some(inner) = self.inner.upgrade() {
+ if let AdbcVersion::V100 = inner.database.driver.version {
+ return Err(Error::with_message_and_status(
+ ERR_CANCEL_UNSUPPORTED,
+ Status::NotImplemented,
+ ));
+ }
+ let driver = &inner.database.driver.driver;
+ let mut connection = inner.connection.lock().unwrap();
Review Comment:
`.lock().unwrap()` adds an expectation that the thread who owns the `adbc_ffi::FFI_AdbcConnection` cannot have panicked (mutex poison) otherwise trying to cancel any statements on that connection will also panic the canceler thread, right? This would cause the panic to start spreading.
Instead of `unwrap()`, could we instead make this return an error so canceler threads can deal with it gracefully?
Since the method is called `try_cancel()` I'd expect it to not panic if canceling failed for any reason, including a panic in a neighbor thread.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "serramatutu (via GitHub)" <gi...@apache.org>.
serramatutu commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r3720101571
##########
rust/driver_manager/src/lib.rs:
##########
@@ -939,6 +955,31 @@ impl ManagedStatement {
}
}
+struct StatementCancelHandle {
+ inner: std::sync::Weak<ManagedStatementInner>,
+}
+
+impl adbc_core::CancelHandle for StatementCancelHandle {
+ fn try_cancel(&self) -> Result<()> {
+ if let Some(inner) = self.inner.upgrade() {
+ if let AdbcVersion::V100 = inner.connection.database.driver.version {
+ return Err(Error::with_message_and_status(
+ ERR_CANCEL_UNSUPPORTED,
+ Status::NotImplemented,
+ ));
+ }
+ let driver = &inner.connection.database.driver.driver;
+ let mut statement = inner.statement.lock().unwrap();
Review Comment:
Same as above :)
##########
rust/driver_manager/src/lib.rs:
##########
@@ -565,6 +565,31 @@ pub struct ManagedConnection {
inner: Arc<ManagedConnectionInner>,
}
+struct ConnectionCancelHandle {
+ inner: std::sync::Weak<ManagedConnectionInner>,
+}
+
+impl adbc_core::CancelHandle for ConnectionCancelHandle {
+ fn try_cancel(&self) -> Result<()> {
+ if let Some(inner) = self.inner.upgrade() {
+ if let AdbcVersion::V100 = inner.database.driver.version {
+ return Err(Error::with_message_and_status(
+ ERR_CANCEL_UNSUPPORTED,
+ Status::NotImplemented,
+ ));
+ }
+ let driver = &inner.database.driver.driver;
+ let mut connection = inner.connection.lock().unwrap();
Review Comment:
This adds an expectation that the thread who owns the connection cannot have panicked (mutex poison) otherwise trying to cancel any statements on that connection will also panic the canceler thread, right?
Instead of `unwrap()`, could we instead make this return an error so that a panic in the owning thread doesn't spread to canceler threads and they can deal with it gracefully?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(rust)!: define cancellation in a sensible way [arrow-adbc]
Posted by "serramatutu (via GitHub)" <gi...@apache.org>.
serramatutu commented on code in PR #3905:
URL: https://github.com/apache/arrow-adbc/pull/3905#discussion_r3720093973
##########
rust/driver_manager/src/lib.rs:
##########
@@ -565,6 +565,31 @@ pub struct ManagedConnection {
inner: Arc<ManagedConnectionInner>,
}
+struct ConnectionCancelHandle {
+ inner: std::sync::Weak<ManagedConnectionInner>,
+}
+
+impl adbc_core::CancelHandle for ConnectionCancelHandle {
+ fn try_cancel(&self) -> Result<()> {
+ if let Some(inner) = self.inner.upgrade() {
+ if let AdbcVersion::V100 = inner.database.driver.version {
+ return Err(Error::with_message_and_status(
+ ERR_CANCEL_UNSUPPORTED,
+ Status::NotImplemented,
+ ));
+ }
+ let driver = &inner.database.driver.driver;
+ let mut connection = inner.connection.lock().unwrap();
Review Comment:
This adds an expectation that the thread who owns the connection cannot have panicked (mutex poison) otherwise trying to cancel any statements on that connection will also panic the canceler thread, right?
Instead of `unwrap()`, could we instead make this return an error so that a panic in the owning thread doesn't spread to canceler threads and they can deal with it gracefully?
Also since the method is called `try_cancel()` I'd expect it to not panic if canceling failed for any reason.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org