all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox] async: runtime: fix `block_in_place` panicking in wrong runtime
@ 2023-08-17 16:46 Max Carrara
  2023-08-18  7:26 ` Wolfgang Bumiller
  0 siblings, 1 reply; 3+ messages in thread
From: Max Carrara @ 2023-08-17 16:46 UTC (permalink / raw)
  To: pbs-devel

Because `tokio::task::block_in_place` panics if called in the
"current_thread" runtime, so does our wrapper function.

This is fixed by checking whether we're actually in a multithreaded
tokio runtime.

Signed-off-by: Max Carrara <m.carrara@proxmox.com>
---
 proxmox-async/src/runtime.rs | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/proxmox-async/src/runtime.rs b/proxmox-async/src/runtime.rs
index 0fe9fae..35cf7c3 100644
--- a/proxmox-async/src/runtime.rs
+++ b/proxmox-async/src/runtime.rs
@@ -15,7 +15,12 @@ thread_local! {
 }

 fn is_in_tokio() -> bool {
-    tokio::runtime::Handle::try_current().is_ok()
+    tokio::runtime::Handle::try_current().is_ok_and(|rt_handle| {
+        matches!(
+            rt_handle.runtime_flavor(),
+            tokio::runtime::RuntimeFlavor::MultiThread
+        )
+    })
 }

 fn is_blocking() -> bool {
--
2.39.2





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-08-18  9:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-17 16:46 [pbs-devel] [PATCH proxmox] async: runtime: fix `block_in_place` panicking in wrong runtime Max Carrara
2023-08-18  7:26 ` Wolfgang Bumiller
2023-08-18  9:57   ` Max Carrara

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal