From 271d700ef775d5dd04b19c70b1c4b8d167357615 Mon Sep 17 00:00:00 2001 From: NathanW Date: Sat, 5 Jun 2021 23:48:40 -0600 Subject: [PATCH 01/17] Handle TaskPool panicking threads --- crates/bevy_core/src/lib.rs | 6 + crates/bevy_core/src/task_pool_options.rs | 78 ++++++--- crates/bevy_tasks/Cargo.toml | 2 + crates/bevy_tasks/src/lib.rs | 7 +- crates/bevy_tasks/src/task_pool.rs | 196 +++++++++++++++++++--- crates/bevy_tasks/src/usages.rs | 10 ++ 6 files changed, 249 insertions(+), 50 deletions(-) diff --git a/crates/bevy_core/src/lib.rs b/crates/bevy_core/src/lib.rs index 75fd87adb5ebb..c03836345a3b3 100644 --- a/crates/bevy_core/src/lib.rs +++ b/crates/bevy_core/src/lib.rs @@ -23,8 +23,10 @@ use bevy_ecs::{ schedule::{ExclusiveSystemDescriptorCoercion, SystemLabel}, system::{IntoExclusiveSystem, IntoSystem}, }; +use bevy_tasks::{AsyncComputeTaskPool, ComputeTaskPool, IoTaskPool}; use bevy_utils::HashSet; use std::ops::Range; +use task_pool_options::handle_task_pool_panicking_threads_system; /// Adds core functionality to Apps. #[derive(Default)] @@ -46,6 +48,10 @@ impl Plugin for CorePlugin { .unwrap_or_else(DefaultTaskPoolOptions::default) .create_default_pools(app.world_mut()); + app.add_system(handle_task_pool_panicking_threads_system::.system()) + .add_system(handle_task_pool_panicking_threads_system::.system()) + .add_system(handle_task_pool_panicking_threads_system::.system()); + app.init_resource::