File tree 1 file changed +6
-3
lines changed
1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change @@ -325,7 +325,10 @@ take_gil(PyThreadState *tstate)
325
325
while (_Py_atomic_load_int_relaxed (& gil -> locked )) {
326
326
unsigned long saved_switchnum = gil -> switch_number ;
327
327
328
- unsigned long interval = (gil -> interval >= 1 ? gil -> interval : 1 );
328
+ unsigned long interval = _Py_atomic_load_ulong_relaxed (& gil -> interval );
329
+ if (interval < 1 ) {
330
+ interval = 1 ;
331
+ }
329
332
int timed_out = 0 ;
330
333
COND_TIMED_WAIT (gil -> cond , gil -> mutex , interval , timed_out );
331
334
@@ -420,15 +423,15 @@ void _PyEval_SetSwitchInterval(unsigned long microseconds)
420
423
PyInterpreterState * interp = _PyInterpreterState_GET ();
421
424
struct _gil_runtime_state * gil = interp -> ceval .gil ;
422
425
assert (gil != NULL );
423
- gil -> interval = microseconds ;
426
+ _Py_atomic_store_ulong_relaxed ( & gil -> interval , microseconds ) ;
424
427
}
425
428
426
429
unsigned long _PyEval_GetSwitchInterval (void )
427
430
{
428
431
PyInterpreterState * interp = _PyInterpreterState_GET ();
429
432
struct _gil_runtime_state * gil = interp -> ceval .gil ;
430
433
assert (gil != NULL );
431
- return gil -> interval ;
434
+ return _Py_atomic_load_ulong_relaxed ( & gil -> interval ) ;
432
435
}
433
436
434
437
You can’t perform that action at this time.
0 commit comments