diff options
author | Carl Lerche <me@carllerche.com> | 2020-01-07 07:53:40 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-07 07:53:40 -0800 |
commit | 45da5f3510a61599c89dc458ecc859f13a81e255 (patch) | |
tree | c85b31879c37f06d3c58cd7d6db99c7e2ce2cf89 /tokio/src/runtime/builder.rs | |
parent | 855d39f849cc16d3c68df5abf0bbb28e3351cdf0 (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.rs | 32 |
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, }) } |