File tree Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Expand file tree Collapse file tree 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)
325325    while  (_Py_atomic_load_int_relaxed (& gil -> locked )) {
326326        unsigned long  saved_switchnum  =  gil -> switch_number ;
327327
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+         }
329332        int  timed_out  =  0 ;
330333        COND_TIMED_WAIT (gil -> cond , gil -> mutex , interval , timed_out );
331334
@@ -420,15 +423,15 @@ void _PyEval_SetSwitchInterval(unsigned long microseconds)
420423    PyInterpreterState  * interp  =  _PyInterpreterState_GET ();
421424    struct  _gil_runtime_state  * gil  =  interp -> ceval .gil ;
422425    assert (gil  !=  NULL );
423-     gil -> interval   =   microseconds ;
426+     _Py_atomic_store_ulong_relaxed ( & gil -> interval ,  microseconds ) ;
424427}
425428
426429unsigned long  _PyEval_GetSwitchInterval (void )
427430{
428431    PyInterpreterState  * interp  =  _PyInterpreterState_GET ();
429432    struct  _gil_runtime_state  * gil  =  interp -> ceval .gil ;
430433    assert (gil  !=  NULL );
431-     return  gil -> interval ;
434+     return  _Py_atomic_load_ulong_relaxed ( & gil -> interval ) ;
432435}
433436
434437
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments