diff options
author | ThiƩbaud Weksteen <tweek@google.com> | 2021-08-25 11:33:34 +0200 |
---|---|---|
committer | ThiƩbaud Weksteen <tweek@google.com> | 2021-08-25 11:33:34 +0200 |
commit | d61267ffdfea9ed9be38e805f8e3ff78e384005f (patch) | |
tree | 4b0e62f2e6c5e32ade50e8b362479668db60ff7b /src/runtime | |
parent | 642961436a727d51930e5839e3dbfee04ba4af95 (diff) | |
download | tokio-d61267ffdfea9ed9be38e805f8e3ff78e384005f.tar.gz |
Upgrade tokio to 1.10.1android-s-beta-5android-s-beta-5
Test: m
Change-Id: I4ace63dd59e80f258b2aefdc2f34a67fc6ed1bfb
Diffstat (limited to 'src/runtime')
-rw-r--r-- | src/runtime/task/mod.rs | 10 | ||||
-rw-r--r-- | src/runtime/tests/task.rs | 6 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/runtime/task/mod.rs b/src/runtime/task/mod.rs index cc3910d..5f0d5ab 100644 --- a/src/runtime/task/mod.rs +++ b/src/runtime/task/mod.rs @@ -369,10 +369,16 @@ impl<S: Schedule> UnownedTask<S> { let raw = self.raw; mem::forget(self); - // Poll the task + // Transfer one ref-count to a Task object. + let task = Task::<S> { + raw, + _p: PhantomData, + }; + + // Use the other ref-count to poll the task. raw.poll(); // Decrement our extra ref-count - raw.header().state.ref_dec(); + drop(task); } pub(crate) fn shutdown(self) { diff --git a/src/runtime/tests/task.rs b/src/runtime/tests/task.rs index e93a1ef..04e1b56 100644 --- a/src/runtime/tests/task.rs +++ b/src/runtime/tests/task.rs @@ -112,6 +112,12 @@ fn create_shutdown2() { } #[test] +fn unowned_poll() { + let (task, _) = unowned(async {}, NoopSchedule); + task.run(); +} + +#[test] fn schedule() { with(|rt| { rt.spawn(async { |