File tree Expand file tree Collapse file tree 2 files changed +8
-8
lines changed
library/std/src/sync/mpmc Expand file tree Collapse file tree 2 files changed +8
-8
lines changed Original file line number Diff line number Diff line change @@ -167,9 +167,9 @@ impl<T> Channel<T> {
167
167
token. array . stamp = tail + 1 ;
168
168
return true ;
169
169
}
170
- Err ( t) => {
171
- tail = t;
170
+ Err ( _) => {
172
171
backoff. spin ( ) ;
172
+ tail = self . load ( Ordering :: Relaxed ) ;
173
173
}
174
174
}
175
175
} else if stamp. wrapping_add ( self . one_lap ) == tail + 1 {
@@ -251,8 +251,8 @@ impl<T> Channel<T> {
251
251
return true ;
252
252
}
253
253
Err ( h) => {
254
- head = h;
255
254
backoff. spin ( ) ;
255
+ head = self . head . load ( Ordering :: Relaxed ) ;
256
256
}
257
257
}
258
258
} else if stamp == head {
Original file line number Diff line number Diff line change @@ -246,10 +246,10 @@ impl<T> Channel<T> {
246
246
token. list . offset = offset;
247
247
return true ;
248
248
} ,
249
- Err ( t) => {
250
- tail = t;
251
- block = self . tail . block . load ( Ordering :: Acquire ) ;
249
+ Err ( _) => {
252
250
backoff. spin ( ) ;
251
+ tail = self . tail . index . load ( Ordering :: Acquire ) ;
252
+ block = self . tail . block . load ( Ordering :: Acquire ) ;
253
253
}
254
254
}
255
255
}
@@ -351,9 +351,9 @@ impl<T> Channel<T> {
351
351
return true ;
352
352
} ,
353
353
Err ( h) => {
354
- head = h;
355
- block = self . head . block . load ( Ordering :: Acquire ) ;
356
354
backoff. spin ( ) ;
355
+ head = self . head . index . load ( Ordering :: Acquire ) ;
356
+ block = self . head . block . load ( Ordering :: Acquire ) ;
357
357
}
358
358
}
359
359
}
You can’t perform that action at this time.
0 commit comments