disable use_future on the server

This commit is contained in:
Jonathan Kelley 2024-02-02 13:36:19 -08:00
parent 8f70a84c70
commit 0fd7799bc2
No known key found for this signature in database
GPG key ID: 1FBB50F7EB0A08BE
3 changed files with 5 additions and 3 deletions

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") {

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);

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! {