Author: Tobias Weber <tobias_webe...@gmx.de>
Branch: c8-adaptive-trx-length-per-thread
Changeset: r2063:6074cbac03a5
Date: 2017-05-17 12:22 +0200
http://bitbucket.org/pypy/stmgc/changeset/6074cbac03a5/

Log:    Initialize single thread mode properties of thread local in setup.c

diff --git a/c8/stm/nursery.c b/c8/stm/nursery.c
--- a/c8/stm/nursery.c
+++ b/c8/stm/nursery.c
@@ -47,12 +47,7 @@
 }
 
 static void stm_transaction_length_handle_validation(stm_thread_local_t *tl, 
bool aborts) {
-    if (!tl->initialized) { // TODO move to setup.c
-        tl->relative_transaction_length = STM_MIN_RELATIVE_TRANSACTION_LENGTH;
-        tl->initialized = true;
-    }
-    double new = get_new_transaction_length(tl, aborts);
-    tl->relative_transaction_length = new;
+    tl->relative_transaction_length = get_new_transaction_length(tl, aborts);
 }
 
 static uintptr_t stm_get_transaction_length(stm_thread_local_t *tl) {
diff --git a/c8/stm/setup.c b/c8/stm/setup.c
--- a/c8/stm/setup.c
+++ b/c8/stm/setup.c
@@ -245,6 +245,11 @@
        numbers automatically. */
     tl->last_associated_segment_num = num + 1;
     tl->thread_local_counter = ++thread_local_counters;
+
+    /* init single thread mode */
+    tl->relative_transaction_length = STM_MIN_RELATIVE_TRANSACTION_LENGTH;
+    tl->transaction_length_backoff = 0;
+
     *_get_cpth(tl) = pthread_self();
     _init_shadow_stack(tl);
     set_gs_register(get_segment_base(num + 1));
diff --git a/c8/stmgc.h b/c8/stmgc.h
--- a/c8/stmgc.h
+++ b/c8/stmgc.h
@@ -89,10 +89,11 @@
     struct stm_thread_local_s *prev, *next;
     intptr_t self_or_0_if_atomic;
     void *creating_pthread[2];
-    /* adaptive single thread mode */
+    /* == adaptive single thread mode == */
+    /* factor that is multiplied with max transaction length before the start 
of the next transaction on this thread */
     double relative_transaction_length;
+    /* when zero, transaction length may increase or decrease, otherwise 
transaction length may only decrease. is (re-)set to some value upon abort and 
counted down until zero upon successful validation. */
     int transaction_length_backoff;
-    bool initialized;
 } stm_thread_local_t;
 
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to