diff options
| author | Josef Reinhard Brandl <mail@josefbrandl.de> | 2018-06-26 17:06:20 +0200 |
|---|---|---|
| committer | Josef Reinhard Brandl <mail@josefbrandl.de> | 2018-06-26 17:06:20 +0200 |
| commit | 433e6b31a75eea5ce45493acc63eae462d740338 (patch) | |
| tree | 74971086254a1d533d177ec8848050bed679230a /src/liballoc | |
| parent | 1f9aa1332fc9f0194bac1761ef04e54564e26fc8 (diff) | |
| download | rust-433e6b31a75eea5ce45493acc63eae462d740338.tar.gz rust-433e6b31a75eea5ce45493acc63eae462d740338.zip | |
Add `LocalTaskObj`
Diffstat (limited to 'src/liballoc')
| -rw-r--r-- | src/liballoc/boxed.rs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/liballoc/boxed.rs b/src/liballoc/boxed.rs index ea60c7775af..6a05ef68088 100644 --- a/src/liballoc/boxed.rs +++ b/src/liballoc/boxed.rs @@ -66,7 +66,7 @@ use core::marker::{Unpin, Unsize}; use core::mem::{self, PinMut}; use core::ops::{CoerceUnsized, Deref, DerefMut, Generator, GeneratorState}; use core::ptr::{self, NonNull, Unique}; -use core::task::{Context, Poll, UnsafeTask, TaskObj}; +use core::task::{Context, Poll, UnsafeTask, TaskObj, LocalTaskObj}; use core::convert::From; use raw_vec::RawVec; @@ -933,7 +933,7 @@ impl<'a, F: ?Sized + Future> Future for PinBox<F> { } #[unstable(feature = "futures_api", issue = "50547")] -unsafe impl<F: Future<Output = ()> + Send + 'static> UnsafeTask for PinBox<F> { +unsafe impl<F: Future<Output = ()> + 'static> UnsafeTask for PinBox<F> { fn into_raw(self) -> *mut () { PinBox::into_raw(self) as *mut () } @@ -962,3 +962,17 @@ impl<F: Future<Output = ()> + Send + 'static> From<Box<F>> for TaskObj { TaskObj::new(PinBox::from(boxed)) } } + +#[unstable(feature = "futures_api", issue = "50547")] +impl<F: Future<Output = ()> + 'static> From<PinBox<F>> for LocalTaskObj { + fn from(boxed: PinBox<F>) -> Self { + LocalTaskObj::new(boxed) + } +} + +#[unstable(feature = "futures_api", issue = "50547")] +impl<F: Future<Output = ()> + 'static> From<Box<F>> for LocalTaskObj { + fn from(boxed: Box<F>) -> Self { + LocalTaskObj::new(PinBox::from(boxed)) + } +} |
