Skip to content

Commit e7f00b6

Browse files
committed
rt: Do all task creation through a scheduler
1 parent bf250be commit e7f00b6

File tree

3 files changed

+10
-15
lines changed

3 files changed

+10
-15
lines changed

src/rt/rust.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "rust_internal.h"
22
#include "rust_util.h"
3+
#include "rust_scheduler.h"
34
#include <cstdio>
45

56
struct
@@ -87,7 +88,8 @@ rust_start(uintptr_t main_fn, int argc, char **argv, void* crate_map) {
8788

8889
rust_srv *srv = new rust_srv(env);
8990
rust_kernel *kernel = new rust_kernel(srv, env->num_sched_threads);
90-
rust_task_id root_id = kernel->create_task(NULL, "main", MAIN_STACK_SIZE);
91+
rust_scheduler *sched = kernel->get_default_scheduler();
92+
rust_task_id root_id = sched->create_task(NULL, "main", MAIN_STACK_SIZE);
9193
rust_task *root_task = kernel->get_task_by_id(root_id);
9294
I(kernel, root_task != NULL);
9395
rust_task_thread *thread = root_task->thread;

src/rt/rust_kernel.cpp

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ int rust_kernel::start_schedulers()
6565
return rval;
6666
}
6767

68+
rust_scheduler *
69+
rust_kernel::get_default_scheduler() {
70+
return sched;
71+
}
72+
6873
void
6974
rust_kernel::fail() {
7075
// FIXME: On windows we're getting "Application has requested the
@@ -77,17 +82,6 @@ rust_kernel::fail() {
7782
sched->kill_all_tasks();
7883
}
7984

80-
rust_task_id
81-
rust_kernel::create_task(rust_task *spawner, const char *name,
82-
size_t init_stack_sz) {
83-
return sched->create_task(spawner, name, init_stack_sz);
84-
}
85-
86-
rust_task_id
87-
rust_kernel::create_task(rust_task *spawner, const char *name) {
88-
return create_task(spawner, name, env->min_stack_size);
89-
}
90-
9185
void
9286
rust_kernel::register_task(rust_task *task) {
9387
scoped_lock with(_kernel_lock);

src/rt/rust_kernel.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,16 @@ class rust_kernel {
4747
void fail();
4848

4949
int start_schedulers();
50+
rust_scheduler* get_default_scheduler();
5051

5152
#ifdef __WIN32__
5253
void win32_require(LPCTSTR fn, BOOL ok);
5354
#endif
5455

55-
rust_task_id create_task(rust_task *spawner, const char *name,
56-
size_t init_stack_size);
57-
rust_task_id create_task(rust_task * spawner, const char *name);
5856
void register_task(rust_task *task);
5957
rust_task *get_task_by_id(rust_task_id id);
6058
void release_task_id(rust_task_id tid);
59+
6160
void set_exit_status(int code);
6261
};
6362

0 commit comments

Comments
 (0)