Author: Armin Rigo <ar...@tunes.org>
Branch: c7-refactor
Changeset: r753:7072d8ddaff5
Date: 2014-02-16 10:37 +0100
http://bitbucket.org/pypy/stmgc/changeset/7072d8ddaff5/

Log:    Oups, can't call this after releasing the mutex, as a different
        thread might get hold of our segment.

diff --git a/c7/stm/core.c b/c7/stm/core.c
--- a/c7/stm/core.c
+++ b/c7/stm/core.c
@@ -236,10 +236,9 @@
     release_thread_segment(tl);   /* includes the cond_broadcast(); */
     STM_PSEGMENT->safe_point = SP_NO_TRANSACTION;
     STM_PSEGMENT->transaction_state = TS_NONE;
+    reset_all_creation_markers();
 
     mutex_unlock();
-
-    reset_all_creation_markers();
 }
 
 void stm_abort_transaction(void)
@@ -312,10 +311,10 @@
     release_thread_segment(tl);   /* includes the cond_broadcast(); */
     STM_PSEGMENT->safe_point = SP_NO_TRANSACTION;
     STM_PSEGMENT->transaction_state = TS_NONE;
+    reset_all_creation_markers();
+
     mutex_unlock();
 
-    reset_all_creation_markers();
-
     assert(jmpbuf_ptr != NULL);
     assert(jmpbuf_ptr != (stm_jmpbuf_t *)-1);    /* for tests only */
     __builtin_longjmp(*jmpbuf_ptr, 1);
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to