diff options
Diffstat (limited to 'src/libcore/task')
| -rw-r--r-- | src/libcore/task/executor.rs | 48 | ||||
| -rw-r--r-- | src/libcore/task/mod.rs | 7 | ||||
| -rw-r--r-- | src/libcore/task/spawn_error.rs | 62 |
3 files changed, 50 insertions, 67 deletions
diff --git a/src/libcore/task/executor.rs b/src/libcore/task/executor.rs index fcef6d5ffc8..73bf80d2f99 100644 --- a/src/libcore/task/executor.rs +++ b/src/libcore/task/executor.rs @@ -12,7 +12,8 @@ reason = "futures in libcore are unstable", issue = "50547")] -use super::{TaskObj, SpawnObjError, SpawnErrorKind}; +use fmt; +use super::{TaskObj, LocalTaskObj}; /// A task executor. /// @@ -42,3 +43,48 @@ pub trait Executor { Ok(()) } } + +/// Provides the reason that an executor was unable to spawn. +pub struct SpawnErrorKind { + _hidden: (), +} + +impl fmt::Debug for SpawnErrorKind { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_tuple("SpawnErrorKind") + .field(&"shutdown") + .finish() + } +} + +impl SpawnErrorKind { + /// Spawning is failing because the executor has been shut down. + pub fn shutdown() -> SpawnErrorKind { + SpawnErrorKind { _hidden: () } + } + + /// Check whether this error is the `shutdown` error. + pub fn is_shutdown(&self) -> bool { + true + } +} + +/// The result of a failed spawn +#[derive(Debug)] +pub struct SpawnObjError { + /// The kind of error + pub kind: SpawnErrorKind, + + /// The task for which spawning was attempted + pub task: TaskObj, +} + +/// The result of a failed spawn +#[derive(Debug)] +pub struct SpawnLocalObjError { + /// The kind of error + pub kind: SpawnErrorKind, + + /// The task for which spawning was attempted + pub task: LocalTaskObj, +} diff --git a/src/libcore/task/mod.rs b/src/libcore/task/mod.rs index 36370b6b37c..d167a374105 100644 --- a/src/libcore/task/mod.rs +++ b/src/libcore/task/mod.rs @@ -18,14 +18,13 @@ mod context; pub use self::context::Context; mod executor; -pub use self::executor::Executor; +pub use self::executor::{ + Executor, SpawnErrorKind, SpawnObjError, SpawnLocalObjError +}; mod poll; pub use self::poll::Poll; -mod spawn_error; -pub use self::spawn_error::{SpawnErrorKind, SpawnObjError, SpawnLocalObjError}; - mod task; pub use self::task::{TaskObj, LocalTaskObj, UnsafeTask}; diff --git a/src/libcore/task/spawn_error.rs b/src/libcore/task/spawn_error.rs deleted file mode 100644 index 42d37efbe19..00000000000 --- a/src/libcore/task/spawn_error.rs +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2018 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -#![unstable(feature = "futures_api", - reason = "futures in libcore are unstable", - issue = "50547")] - -use fmt; -use mem; -use super::{TaskObj, LocalTaskObj}; - -/// Provides the reason that an executor was unable to spawn. -pub struct SpawnErrorKind { - _hidden: (), -} - -impl fmt::Debug for SpawnErrorKind { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_tuple("SpawnErrorKind") - .field(&"shutdown") - .finish() - } -} - -impl SpawnErrorKind { - /// Spawning is failing because the executor has been shut down. - pub fn shutdown() -> SpawnErrorKind { - SpawnErrorKind { _hidden: () } - } - - /// Check whether this error is the `shutdown` error. - pub fn is_shutdown(&self) -> bool { - true - } -} - -/// The result of a failed spawn -#[derive(Debug)] -pub struct SpawnObjError { - /// The kind of error - pub kind: SpawnErrorKind, - - /// The task for which spawning was attempted - pub task: TaskObj, -} - -/// The result of a failed spawn -#[derive(Debug)] -pub struct SpawnLocalObjError { - /// The kind of error - pub kind: SpawnErrorKind, - - /// The task for which spawning was attempted - pub task: LocalTaskObj, -} |
