diff --git a/packages/signals/src/rc.rs b/packages/signals/src/rc.rs index 709b16067..867879641 100644 --- a/packages/signals/src/rc.rs +++ b/packages/signals/src/rc.rs @@ -19,7 +19,7 @@ pub struct ReactiveContext { } thread_local! { - static CURRENT: RefCell> = RefCell::new(vec![]); + static CURRENT: RefCell> = const { RefCell::new(vec![]) }; } impl ReactiveContext { @@ -42,7 +42,10 @@ impl ReactiveContext { }; let mut self_ = Self { - inner: CopyValue::new_maybe_sync(inner), + inner: CopyValue::new_maybe_sync_in_scope( + inner, + scope.or_else(current_scope_id).unwrap(), + ), }; self_.inner.write().self_ = Some(self_); diff --git a/packages/signals/src/rt.rs b/packages/signals/src/rt.rs index f5039f102..5ea5100ae 100644 --- a/packages/signals/src/rt.rs +++ b/packages/signals/src/rt.rs @@ -55,8 +55,8 @@ fn set_owner(owner: Option>) -> Option> { } thread_local! { - static SYNC_OWNER: RefCell>> = RefCell::new(None); - static UNSYNC_OWNER: RefCell>> = RefCell::new(None); + static SYNC_OWNER: RefCell>> = const { RefCell::new(None) }; + static UNSYNC_OWNER: RefCell>> = const { RefCell::new(None) }; } fn current_owner, T>() -> Owner {