File tree Expand file tree Collapse file tree 2 files changed +7
-6
lines changed Expand file tree Collapse file tree 2 files changed +7
-6
lines changed Original file line number Diff line number Diff line change @@ -96,12 +96,13 @@ fn schedule(t: async_task::Task<Tag>) {
9696/// Spawns a blocking task.
9797///
9898/// The task will be spawned onto a thread pool specifically dedicated to blocking tasks.
99- pub ( crate ) fn spawn < F , R > ( future : F ) -> JoinHandle < R >
99+ pub ( crate ) fn spawn < F , R > ( f : F ) -> JoinHandle < R >
100100where
101- F : Future < Output = R > + Send + ' static ,
101+ F : FnOnce ( ) -> R + Send + ' static ,
102102 R : Send + ' static ,
103103{
104104 let tag = Tag :: new ( None ) ;
105+ let future = async move { f ( ) } ;
105106 let ( task, handle) = async_task:: spawn ( future, schedule, tag) ;
106107 task. schedule ( ) ;
107108 JoinHandle :: new ( handle)
Original file line number Diff line number Diff line change @@ -68,7 +68,7 @@ pub(crate) mod blocking;
6868/// #
6969/// use async_std::task;
7070///
71- /// task::blocking(async {
71+ /// task::blocking(|| {
7272/// println!("long-running task here");
7373/// }).await;
7474/// #
@@ -79,10 +79,10 @@ pub(crate) mod blocking;
7979#[ cfg( any( feature = "unstable" , feature = "docs" ) ) ]
8080#[ cfg_attr( feature = "docs" , doc( cfg( unstable) ) ) ]
8181#[ inline]
82- pub fn blocking < F , R > ( future : F ) -> task:: JoinHandle < R >
82+ pub fn blocking < F , R > ( f : F ) -> task:: JoinHandle < R >
8383where
84- F : crate :: future :: Future < Output = R > + Send + ' static ,
84+ F : FnOnce ( ) -> R + Send + ' static ,
8585 R : Send + ' static ,
8686{
87- blocking:: spawn ( future)
87+ blocking:: spawn_blocking ( future)
8888}
You can’t perform that action at this time.
0 commit comments