Retract the claim that this is always safe if PyMem_{Del, DEL, Free, FREE}

are called without the GIL.  It's incredibly unlikely to fail, but I can't
make this bulletproof without either adding a lock for exclusion, or
giving up on growing the arena base-address vector (it would be safe if
this were a static array).
This commit is contained in:
Tim Peters 2002-03-30 06:20:23 +00:00
parent d97a1c008c
commit 12300686ca
1 changed files with 4 additions and 0 deletions

View File

@ -403,6 +403,10 @@ new_arena(void)
* only make a supposed-to-succeed case fail by mistake).
* Read the above 50 times before changing anything in this
* block.
* XXX Fudge. This is still vulnerable: there's nothing
* XXX to stop the bad-guy thread from picking up the
* XXX current value of arenas, but not indexing off of it
* XXX until after the PyMem_FREE(oldarenas) below completes.
*/
uptr *oldarenas;
int newmax = maxarenas + (maxarenas >> 1);