mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	gh-130920: Fix data race in STORE_SUBSCR_LIST_INT (#130923)
The write of the item to the list needs to use an atomic operation in the free threading build. Co-authored-by: Tomasz Pytel <tompytel@gmail.com>
This commit is contained in:
		
							parent
							
								
									6c6600f683
								
							
						
					
					
						commit
						a025f27d94
					
				
					 4 changed files with 21 additions and 4 deletions
				
			
		
							
								
								
									
										3
									
								
								Python/executor_cases.c.h
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										3
									
								
								Python/executor_cases.c.h
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -1522,7 +1522,8 @@
 | 
			
		|||
            }
 | 
			
		||||
            STAT_INC(STORE_SUBSCR, hit);
 | 
			
		||||
            PyObject *old_value = PyList_GET_ITEM(list, index);
 | 
			
		||||
            PyList_SET_ITEM(list, index, PyStackRef_AsPyObjectSteal(value));
 | 
			
		||||
            FT_ATOMIC_STORE_PTR_RELEASE(_PyList_ITEMS(list)[index],
 | 
			
		||||
                                        PyStackRef_AsPyObjectSteal(value));
 | 
			
		||||
            assert(old_value != NULL);
 | 
			
		||||
            UNLOCK_OBJECT(list);  // unlock before decrefs!
 | 
			
		||||
            PyStackRef_CLOSE_SPECIALIZED(sub_st, _PyLong_ExactDealloc);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue