[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