Author: Armin Rigo <ar...@tunes.org> Branch: c8-locking Changeset: r1751:dc7653c95182 Date: 2015-04-09 16:02 +0200 http://bitbucket.org/pypy/stmgc/changeset/dc7653c95182/
Log: Two extra points (thanks remi) diff --git a/c8/LOCKS b/c8/LOCKS --- a/c8/LOCKS +++ b/c8/LOCKS @@ -34,6 +34,12 @@ the current segment modification_lock is also acquired briefly whenever we change our segment's 'modified_old_objects'. +_validate_and_attach() needs to have its own segment's +modification_lock *around* the compare-and-swap, so that +_stm_validate() sees either the commit not done and the backup copies +still in modified_old_objects, or the commit done and no backup copies +any more. + privatization_lock @@ -70,6 +76,9 @@ synchronize_all_threads(). That's used only in rare cases, for example because we want to start a major collection. +The mutex also needs to be acquired for rewind_longjmp's setjmp() and +longjmp() equivalent. + usleep loop _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit