From 48e9dc19640ae5f6c8cee31e6f36bb1ac71860af Mon Sep 17 00:00:00 2001 From: Mike Date: Thu, 20 Oct 2022 20:23:57 +0000 Subject: [PATCH] fix failing doc test and clear up docs (#6314) # Objective Fixes https://github.com/bevyengine/bevy/issues/6306 ## Solution Change the failing assert and expand example to explain when ordering is deterministic or not. Co-authored-by: Mike Hsu --- crates/bevy_tasks/src/task_pool.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/crates/bevy_tasks/src/task_pool.rs b/crates/bevy_tasks/src/task_pool.rs index e0ac0101d5..4165f3a941 100644 --- a/crates/bevy_tasks/src/task_pool.rs +++ b/crates/bevy_tasks/src/task_pool.rs @@ -164,11 +164,19 @@ impl TaskPool { /// }); /// }); /// - /// // results are returned in the order the tasks are spawned in. - /// // Note: the ordering may become non-deterministic if you spawn from within tasks. - /// // the ordering is only guaranteed when tasks are spawned directly from the main closure. + /// // The ordering of results is non-deterministic if you spawn from within tasks as above. + /// // If you're doing this, you'll have to write your code to not depend on the ordering. + /// assert!(results.contains(&0)); + /// assert!(results.contains(&1)); + /// + /// // The ordering is deterministic if you only spawn directly from the closure function. + /// let results = pool.scope(|s| { + /// s.spawn(async { 0 }); + /// s.spawn(async { 1 }); + /// }); /// assert_eq!(&results[..], &[0, 1]); - /// // can access x after scope runs + /// + /// // You can access x after scope runs, since it was only temporarily borrowed in the scope. /// assert_eq!(x, 2); /// ``` ///