Author: Armin Rigo <ar...@tunes.org>
Branch: c7-refactor
Changeset: r844:685f6c6003e3
Date: 2014-02-24 18:09 +0100
http://bitbucket.org/pypy/stmgc/changeset/685f6c6003e3/

Log:    tweaks

diff --git a/c7/stm/core.c b/c7/stm/core.c
--- a/c7/stm/core.c
+++ b/c7/stm/core.c
@@ -176,9 +176,7 @@
     assert(STM_PSEGMENT->objects_pointing_to_nursery == NULL);
     assert(STM_PSEGMENT->large_overflow_objects == NULL);
 
-#ifdef STM_TESTS
     check_nursery_at_transaction_start();
-#endif
 }
 
 
diff --git a/c7/stm/nursery.c b/c7/stm/nursery.c
--- a/c7/stm/nursery.c
+++ b/c7/stm/nursery.c
@@ -253,8 +253,17 @@
 
 static void check_nursery_at_transaction_start(void)
 {
+#ifndef NDEBUG
     assert((uintptr_t)STM_SEGMENT->nursery_current == _stm_nursery_start);
-    uintptr_t i;
-    for (i = 0; i < _stm_nursery_end - _stm_nursery_start; i++)
-        assert(STM_SEGMENT->nursery_current[i] == 0);
+    uintptr_t i, limit;
+# ifdef STM_TESTS
+    limit = _stm_nursery_end - _stm_nursery_start;
+# else
+    limit = 64;
+# endif
+    for (i = 0; i < limit; i += 8) {
+        assert(*(TLPREFIX uint64_t *)(STM_SEGMENT->nursery_current + i) == 0);
+        _duck();
+    }
+#endif
 }
diff --git a/c7/stm/nursery.h b/c7/stm/nursery.h
--- a/c7/stm/nursery.h
+++ b/c7/stm/nursery.h
@@ -6,4 +6,4 @@
 static uint32_t highest_overflow_number;
 
 static void minor_collection(bool commit);
-static void check_nursery_at_transaction_start(void) __attribute__((unused));
+static void check_nursery_at_transaction_start(void);
diff --git a/c7/test/support.py b/c7/test/support.py
--- a/c7/test/support.py
+++ b/c7/test/support.py
@@ -32,6 +32,7 @@
 typedef ... object_t;
 typedef ... stm_jmpbuf_t;
 #define SIZEOF_MYOBJ ...
+#define _STM_FAST_ALLOC ...
 
 typedef struct {
     object_t **shadowstack, **shadowstack_base;
diff --git a/c7/test/test_nursery.py b/c7/test/test_nursery.py
--- a/c7/test/test_nursery.py
+++ b/c7/test/test_nursery.py
@@ -98,8 +98,9 @@
         assert old
         assert young
 
-    def test_larger_than_section(self):
-        obj_size = NURSERY_SECTION_SIZE + 16
+    def test_larger_than_limit_for_nursery(self):
+        py.test.skip("XXX later")
+        obj_size = lib._STM_FAST_ALLOC + 16
 
         self.start_transaction()
         seen = set()
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to