Author: Armin Rigo <ar...@tunes.org>
Branch: 
Changeset: r1096:4d330c8e6b92
Date: 2014-03-25 14:17 +0100
http://bitbucket.org/pypy/stmgc/changeset/4d330c8e6b92/

Log:    Move this error-detection logic into
        abort_data_structures_from_segment_num()

diff --git a/c7/stm/core.c b/c7/stm/core.c
--- a/c7/stm/core.c
+++ b/c7/stm/core.c
@@ -580,6 +580,16 @@
     */
     struct stm_priv_segment_info_s *pseg = get_priv_segment(segment_num);
 
+    switch (pseg->transaction_state) {
+    case TS_REGULAR:
+        break;
+    case TS_INEVITABLE:
+        stm_fatalerror("abort: transaction_state == TS_INEVITABLE");
+    default:
+        stm_fatalerror("abort: bad transaction_state == %d",
+                       (int)pseg->transaction_state);
+    }
+
     /* throw away the content of the nursery */
     long bytes_in_nursery = throw_away_nursery(pseg);
 
@@ -605,15 +615,6 @@
     assert(_has_mutex());
     dprintf(("~~~ ABORT\n"));
 
-    switch (STM_PSEGMENT->transaction_state) {
-    case TS_REGULAR:
-        break;
-    case TS_INEVITABLE:
-        stm_fatalerror("abort: transaction_state == TS_INEVITABLE");
-    default:
-        stm_fatalerror("abort: bad transaction_state == %d",
-                       (int)STM_PSEGMENT->transaction_state);
-    }
     assert(STM_PSEGMENT->running_pthread == pthread_self());
 
     abort_data_structures_from_segment_num(STM_SEGMENT->segment_num);
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to