diff --git a/src/rt/rust_builtin.cpp b/src/rt/rust_builtin.cpp index 8ac85c4ece77..bcc3e9447115 100644 --- a/src/rt/rust_builtin.cpp +++ b/src/rt/rust_builtin.cpp @@ -417,7 +417,7 @@ start_task(rust_task_id id, fn_env_pair *f) { extern "C" CDECL int sched_threads() { rust_task *task = rust_task_thread::get_task(); - return task->thread->sched->number_of_threads(); + return task->sched->number_of_threads(); } extern "C" CDECL rust_port* diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index 4612a4858d8e..150ef1a18c11 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -233,6 +233,7 @@ rust_task::rust_task(rust_task_thread *thread, rust_task_list *state, ref_count(1), stk(NULL), runtime_sp(0), + sched(thread->sched), thread(thread), cache(NULL), kernel(thread->kernel), diff --git a/src/rt/rust_task.h b/src/rt/rust_task.h index 54b2a66d3615..7e407b382000 100644 --- a/src/rt/rust_task.h +++ b/src/rt/rust_task.h @@ -72,10 +72,10 @@ rust_task : public kernel_owned, rust_cond RUST_ATOMIC_REFCOUNT(); - // Fields known to the compiler. context ctx; stk_seg *stk; uintptr_t runtime_sp; // Runtime sp while task running. + rust_scheduler *sched; rust_task_thread *thread; rust_crate_cache *cache;