mirror of
https://github.com/async-rs/async-std.git
synced 2025-05-29 02:11:31 +00:00
32 lines
671 B
Rust
32 lines
671 B
Rust
use std::future::Future;
|
|
|
|
use crate::task::{Builder, JoinHandle};
|
|
|
|
/// Spawns a task.
|
|
///
|
|
/// This function is similar to [`std::thread::spawn`], except it spawns an asynchronous task.
|
|
///
|
|
/// [`std::thread`]: https://doc.rust-lang.org/std/thread/fn.spawn.html
|
|
///
|
|
/// # Examples
|
|
///
|
|
/// ```
|
|
/// # async_std::task::block_on(async {
|
|
/// #
|
|
/// use async_std::task;
|
|
///
|
|
/// let handle = task::spawn(async {
|
|
/// 1 + 2
|
|
/// });
|
|
///
|
|
/// assert_eq!(handle.await, 3);
|
|
/// #
|
|
/// # })
|
|
/// ```
|
|
pub fn spawn<F, T>(future: F) -> JoinHandle<T>
|
|
where
|
|
F: Future<Output = T> + Send + 'static,
|
|
T: Send + 'static,
|
|
{
|
|
Builder::new().spawn(future).expect("cannot spawn task")
|
|
}
|