disable use_future on the server

This commit is contained in:
Jonathan Kelley committed 2024-02-02 13:36:19 -08:00
1 parent 8f70a84c70
commit 0fd7799bc2
3 files changed
+5 -3

No files matched your search

+2
View File
@@ -448,6 +448,8 @@ impl VirtualDom {
// Hold a lock to the flush sync to prevent tasks from running in the event we get an immediate
// When we're doing awaiting the rx, the lock will be dropped and tasks waiting on the lock will get waked
// We have to own the lock since poll_tasks is cancel safe - the future that this is running in might get dropped
// and if we held the lock in the scope, the lock would also get dropped prematurely
self.runtime.acquire_flush_lock();
match self.rx.next().await.expect("channel should never close") {
+1
View File
@@ -21,6 +21,7 @@ where
let mut callback = use_callback(move || {
let fut = future();
spawn(async move {
flush_sync().await;
state.set(UseFutureState::Pending);
fut.await;
state.set(UseFutureState::Complete);
+2 -3
View File
@@ -1,6 +1,5 @@
use dioxus_core::prelude::{
consume_context, consume_context_from_scope, current_scope_id, has_context, needs_update_any,
provide_context, schedule_update, schedule_update_any, try_consume_context, ScopeId,
current_scope_id, has_context, needs_update_any, provide_context, ScopeId,
};
use generational_box::{GenerationalBoxId, SyncStorage};
use rustc_hash::{FxHashMap, FxHashSet};
@@ -16,7 +15,7 @@ use crate::{CopyValue, RcList, Readable, Writable};
/// When the ReactiveContext drops, it will remove itself from the the associated contexts attached to signal
#[derive(Clone, Copy, PartialEq, Eq)]
pub struct ReactiveContext {
pub inner: CopyValue<Inner, SyncStorage>,
inner: CopyValue<Inner, SyncStorage>,
}
thread_local! {