summaryrefslogtreecommitdiffstats
path: root/tokio/src/runtime/builder.rs
diff options
context:
space:
mode:
authorCarl Lerche <me@carllerche.com>2020-01-07 07:53:40 -0800
committerGitHub <noreply@github.com>2020-01-07 07:53:40 -0800
commit45da5f3510a61599c89dc458ecc859f13a81e255 (patch)
treec85b31879c37f06d3c58cd7d6db99c7e2ce2cf89 /tokio/src/runtime/builder.rs
parent855d39f849cc16d3c68df5abf0bbb28e3351cdf0 (diff)
rt: cleanup runtime::context (#2063)
Tweak context to remove more fns and usage of `Option`. Remove `ThreadContext` struct as it is reduced to just `Handle`. Avoid passing around individual driver handles and instead limit to the `runtime::Handle` struct.
Diffstat (limited to 'tokio/src/runtime/builder.rs')
-rw-r--r--tokio/src/runtime/builder.rs32
1 files changed, 14 insertions, 18 deletions
diff --git a/tokio/src/runtime/builder.rs b/tokio/src/runtime/builder.rs
index fd047a84..a5d80f51 100644
--- a/tokio/src/runtime/builder.rs
+++ b/tokio/src/runtime/builder.rs
@@ -325,14 +325,7 @@ impl Builder {
let spawner = Spawner::Shell;
- let blocking_pool = blocking::create_blocking_pool(
- self,
- &spawner,
- &io_handle,
- &time_handle,
- &clock,
- self.max_threads,
- );
+ let blocking_pool = blocking::create_blocking_pool(self, self.max_threads);
let blocking_spawner = blocking_pool.spawner().clone();
Ok(Runtime {
@@ -425,7 +418,7 @@ cfg_rt_core! {
let spawner = Spawner::Basic(scheduler.spawner());
// Blocking pool
- let blocking_pool = blocking::create_blocking_pool(self, &spawner, &io_handle, &time_handle, &clock, self.max_threads);
+ let blocking_pool = blocking::create_blocking_pool(self, self.max_threads);
let blocking_spawner = blocking_pool.spawner().clone();
Ok(Runtime {
@@ -465,21 +458,24 @@ cfg_rt_threaded! {
let spawner = Spawner::ThreadPool(scheduler.spawner().clone());
// Create the blocking pool
- let blocking_pool = blocking::create_blocking_pool(self, &spawner, &io_handle, &time_handle, &clock, self.max_threads);
+ let blocking_pool = blocking::create_blocking_pool(self, self.max_threads);
let blocking_spawner = blocking_pool.spawner().clone();
+ // Create the runtime handle
+ let handle = Handle {
+ spawner,
+ io_handle,
+ time_handle,
+ clock,
+ blocking_spawner,
+ };
+
// Spawn the thread pool workers
- workers.spawn(&blocking_spawner);
+ workers.spawn(&handle);
Ok(Runtime {
kind: Kind::ThreadPool(scheduler),
- handle: Handle {
- spawner,
- io_handle,
- time_handle,
- clock,
- blocking_spawner,
- },
+ handle,
blocking_pool,
})
}