about summary refs log tree commit diff
path: root/src/rt/rust_sched_reaper.cpp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-03-30 13:54:37 -0700
committerBrian Anderson <banderson@mozilla.com>2012-03-31 19:51:29 -0700
commit218dd084697ed2ce58812ef9e69cdc86cb83bcf2 (patch)
tree171eaf77a6e1d8c4af168bcb17d2ba02d9f41f83 /src/rt/rust_sched_reaper.cpp
parent771c1be6a64225d416ad99a860f1c8d34ce3a18b (diff)
downloadrust-218dd084697ed2ce58812ef9e69cdc86cb83bcf2.tar.gz
rust-218dd084697ed2ce58812ef9e69cdc86cb83bcf2.zip
rt: Introduce rust_sched_reaper
This just moves the responsibility for joining with scheduler threads
off to a worker thread. This will be needed when we allow tasks to be
scheduled on the main thread.
Diffstat (limited to 'src/rt/rust_sched_reaper.cpp')
-rw-r--r--src/rt/rust_sched_reaper.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/rt/rust_sched_reaper.cpp b/src/rt/rust_sched_reaper.cpp
new file mode 100644
index 00000000000..f2897859f23
--- /dev/null
+++ b/src/rt/rust_sched_reaper.cpp
@@ -0,0 +1,15 @@
+#include "rust_internal.h"
+#include "rust_kernel.h"
+#include "rust_sched_reaper.h"
+
+// NB: We're using a very small stack here
+const size_t STACK_SIZE = 1024*20;
+
+rust_sched_reaper::rust_sched_reaper(rust_kernel *kernel)
+    : rust_thread(STACK_SIZE), kernel(kernel) {
+}
+
+void
+rust_sched_reaper::run() {
+    kernel->wait_for_schedulers();
+}