@@ -2137,36 +2137,37 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
21372137 let until = last_snapshot + time;
21382138 if until > Instant :: now ( ) {
21392139 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( ) {
21622168 break ;
2163- } ,
2164- _ = tokio:: time:: sleep_until( idle_time) => {
2165- if turbo_tasks. is_idle( ) {
2166- break ;
2167- }
2168- } ,
2169- }
2169+ }
2170+ } ,
21702171 }
21712172 }
21722173 }
0 commit comments