[pypy-commit] stmgc c8-long-transactions: Define large nursery mark in a more straight forward way and make single thread mode transactions inevitable

tobweber pypy.commits at gmail.com
Thu Apr 13 04:09:43 EDT 2017


Author: Tobias Weber <tobias_weber89 at gmx.de>
Branch: c8-long-transactions
Changeset: r2042:df52953567cb
Date: 2017-04-13 10:09 +0200
http://bitbucket.org/pypy/stmgc/changeset/df52953567cb/

Log:	Define large nursery mark in a more straight forward way and make
	single thread mode transactions inevitable

diff --git a/c8/stm/core.c b/c8/stm/core.c
--- a/c8/stm/core.c
+++ b/c8/stm/core.c
@@ -1170,6 +1170,7 @@
                 segments_in_use));
         if (segments_in_use <= single_thread_mode_segments_in_use_limit) {
             start_single_thread_mode();
+            _stm_become_inevitable("execute_in_single_thread_mode");
         } else if (stm_single_thread_mode_active) {
             end_single_thread_mode();
         }
diff --git a/c8/stm/nursery.c b/c8/stm/nursery.c
--- a/c8/stm/nursery.c
+++ b/c8/stm/nursery.c
@@ -15,7 +15,7 @@
 
 static bool stm_single_thread_mode_active = false;
 
-#define SINGLE_THREAD_MODE_FILL_MARK_NURSERY_BYTES  (NURSERY_SIZE * 500000)
+#define SINGLE_THREAD_MODE_FILL_MARK_NURSERY_BYTES  (0x3000000000000000L)
 #define DEFAULT_FILL_MARK_NURSERY_BYTES             (NURSERY_SIZE / 4)
 
 uintptr_t stm_fill_mark_nursery_bytes = DEFAULT_FILL_MARK_NURSERY_BYTES;


More information about the pypy-commit mailing list