diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-04-01 17:35:35 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-04-01 17:35:35 -0700 |
| commit | 3654ef00782cf9708196fd438ee08c751a5b699b (patch) | |
| tree | 4ca105b060484245a0862dacf1d555dd36015e79 /src | |
| parent | 7c1be236a524980b65b01a327e2c55feb6295a52 (diff) | |
| download | rust-3654ef00782cf9708196fd438ee08c751a5b699b.tar.gz rust-3654ef00782cf9708196fd438ee08c751a5b699b.zip | |
rt: Introduce rust_manual_sched_launcher_factory. Again, so sorry
Diffstat (limited to 'src')
| -rw-r--r-- | src/rt/rust_sched_launcher.cpp | 8 | ||||
| -rw-r--r-- | src/rt/rust_sched_launcher.h | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/rt/rust_sched_launcher.cpp b/src/rt/rust_sched_launcher.cpp index e1b0651cf9d..dabae31f5b6 100644 --- a/src/rt/rust_sched_launcher.cpp +++ b/src/rt/rust_sched_launcher.cpp @@ -27,3 +27,11 @@ rust_thread_sched_launcher_factory::create(rust_scheduler *sched, int id) { return new(sched->kernel, "rust_thread_sched_launcher") rust_thread_sched_launcher(sched, srv, id); } + +rust_sched_launcher * +rust_manual_sched_launcher_factory::create(rust_scheduler *sched, int id) { + assert(launcher == NULL && "I can only track one sched_launcher"); + rust_srv *srv = sched->srv->clone(); + return new(sched->kernel, "rust_manual_sched_launcher") + rust_manual_sched_launcher(sched, srv, id); +} diff --git a/src/rt/rust_sched_launcher.h b/src/rt/rust_sched_launcher.h index 7b5dc719424..a68c1f500d6 100644 --- a/src/rt/rust_sched_launcher.h +++ b/src/rt/rust_sched_launcher.h @@ -55,4 +55,14 @@ public: virtual rust_sched_launcher *create(rust_scheduler *sched, int id); }; +class rust_manual_sched_launcher_factory + : public rust_sched_launcher_factory { +private: + rust_manual_sched_launcher *launcher; +public: + rust_manual_sched_launcher_factory() : launcher(NULL) { } + virtual rust_sched_launcher *create(rust_scheduler *sched, int id); + rust_manual_sched_launcher *get_launcher() { return launcher; } +}; + #endif // RUST_SCHED_LAUNCHER_H |
