@@ -2137,36 +2137,37 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
2137
2137
let until = last_snapshot + time;
2138
2138
if until > Instant :: now ( ) {
2139
2139
let mut stop_listener = self . stopping_event . listen ( ) ;
2140
- if !self . stopping . load ( Ordering :: Acquire ) {
2141
- let mut idle_start_listener = self . idle_start_event . listen ( ) ;
2142
- let mut idle_end_listener = self . idle_end_event . listen ( ) ;
2143
- let mut idle_time = if turbo_tasks. is_idle ( ) {
2144
- Instant :: now ( ) + IDLE_TIMEOUT
2145
- } else {
2146
- far_future ( )
2147
- } ;
2148
- loop {
2149
- tokio:: select! {
2150
- _ = & mut stop_listener => {
2151
- break ;
2152
- } ,
2153
- _ = & mut idle_start_listener => {
2154
- idle_time = Instant :: now( ) + IDLE_TIMEOUT ;
2155
- idle_start_listener = self . idle_start_event. listen( )
2156
- } ,
2157
- _ = & mut idle_end_listener => {
2158
- idle_time = until + IDLE_TIMEOUT ;
2159
- idle_end_listener = self . idle_end_event. listen( )
2160
- } ,
2161
- _ = tokio:: time:: sleep_until( until) => {
2140
+ if self . stopping . load ( Ordering :: Acquire ) {
2141
+ return ;
2142
+ }
2143
+ let mut idle_start_listener = self . idle_start_event . listen ( ) ;
2144
+ let mut idle_end_listener = self . idle_end_event . listen ( ) ;
2145
+ let mut idle_time = if turbo_tasks. is_idle ( ) {
2146
+ Instant :: now ( ) + IDLE_TIMEOUT
2147
+ } else {
2148
+ far_future ( )
2149
+ } ;
2150
+ loop {
2151
+ tokio:: select! {
2152
+ _ = & mut stop_listener => {
2153
+ return ;
2154
+ } ,
2155
+ _ = & mut idle_start_listener => {
2156
+ idle_time = Instant :: now( ) + IDLE_TIMEOUT ;
2157
+ idle_start_listener = self . idle_start_event. listen( )
2158
+ } ,
2159
+ _ = & mut idle_end_listener => {
2160
+ idle_time = until + IDLE_TIMEOUT ;
2161
+ idle_end_listener = self . idle_end_event. listen( )
2162
+ } ,
2163
+ _ = tokio:: time:: sleep_until( until) => {
2164
+ break ;
2165
+ } ,
2166
+ _ = tokio:: time:: sleep_until( idle_time) => {
2167
+ if turbo_tasks. is_idle( ) {
2162
2168
break ;
2163
- } ,
2164
- _ = tokio:: time:: sleep_until( idle_time) => {
2165
- if turbo_tasks. is_idle( ) {
2166
- break ;
2167
- }
2168
- } ,
2169
- }
2169
+ }
2170
+ } ,
2170
2171
}
2171
2172
}
2172
2173
}
0 commit comments