[pypy-commit] stmgc c8-binary-trx-length-per-thread: Move transaction length update on abort

tobweber pypy.commits at gmail.com
Fri Aug 4 05:53:50 EDT 2017


Author: Tobias Weber <tobias_weber89 at gmx.de>
Branch: c8-binary-trx-length-per-thread
Changeset: r2149:aa5b73c18b88
Date: 2017-07-14 12:49 +0200
http://bitbucket.org/pypy/stmgc/changeset/aa5b73c18b88/

Log:	Move transaction length update on abort

diff --git a/c8/stm/core.c b/c8/stm/core.c
--- a/c8/stm/core.c
+++ b/c8/stm/core.c
@@ -1552,8 +1552,6 @@
     did_abort = 1;
 #endif
 
-    stm_transaction_length_handle_validation(pseg->pub.running_thread, true);
-
     list_clear(pseg->objects_pointing_to_nursery);
     list_clear(pseg->old_objects_with_cards_set);
     LIST_FOREACH_R(pseg->large_overflow_objects, uintptr_t /*item*/,
@@ -1584,6 +1582,8 @@
     tl->self_or_0_if_atomic = (intptr_t)tl;   /* clear the 'atomic' flag */
     STM_PSEGMENT->atomic_nesting_levels = 0;
 
+    stm_transaction_length_handle_validation(tl, true);
+
     if (tl->mem_clear_on_abort)
         memset(tl->mem_clear_on_abort, 0, tl->mem_bytes_to_clear_on_abort);
     if (tl->mem_reset_on_abort) {


More information about the pypy-commit mailing list