File tree Expand file tree Collapse file tree 1 file changed +20
-12
lines changed
crates/bevy_schedule_runner/src Expand file tree Collapse file tree 1 file changed +20
-12
lines changed Original file line number Diff line number Diff line change @@ -91,24 +91,18 @@ impl Plugin for ScheduleRunnerPlugin {
91
91
-> Result < Option < Duration > , AppExit > {
92
92
let start_time = Instant :: now ( ) ;
93
93
94
- if let Some ( app_exit_events ) =
95
- app . world . get_resource_mut :: < Events < AppExit > > ( )
94
+ if let Some ( result ) =
95
+ check_for_app_exit_events ( app , & mut app_exit_event_reader )
96
96
{
97
- if let Some ( exit) = app_exit_event_reader. iter ( & app_exit_events) . last ( )
98
- {
99
- return Err ( exit. clone ( ) ) ;
100
- }
97
+ return result;
101
98
}
102
99
103
100
app. update ( ) ;
104
101
105
- if let Some ( app_exit_events ) =
106
- app . world . get_resource_mut :: < Events < AppExit > > ( )
102
+ if let Some ( value ) =
103
+ check_for_app_exit_events ( app , & mut app_exit_event_reader )
107
104
{
108
- if let Some ( exit) = app_exit_event_reader. iter ( & app_exit_events) . last ( )
109
- {
110
- return Err ( exit. clone ( ) ) ;
111
- }
105
+ return value;
112
106
}
113
107
114
108
let end_time = Instant :: now ( ) ;
@@ -167,3 +161,17 @@ impl Plugin for ScheduleRunnerPlugin {
167
161
} ) ;
168
162
}
169
163
}
164
+
165
+ fn check_for_app_exit_events (
166
+ app : & mut App ,
167
+ app_exit_event_reader : & mut ManualEventReader < AppExit > ,
168
+ ) -> Option < Result < Option < Duration > , AppExit > > {
169
+ if let Some ( app_exit_events) = app. world . get_resource_mut :: < Events < AppExit > > ( ) {
170
+ return app_exit_event_reader
171
+ . iter ( & app_exit_events)
172
+ . last ( )
173
+ . cloned ( )
174
+ . map ( Err ) ;
175
+ }
176
+ None
177
+ }
You can’t perform that action at this time.
0 commit comments