[pypy-commit] stmgc default: A simpler failing test

arigo noreply at buildbot.pypy.org
Sun May 26 13:07:35 CEST 2013


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r11:cf227a57babe
Date: 2013-05-26 13:01 +0200
http://bitbucket.org/pypy/stmgc/changeset/cf227a57babe/

Log:	A simpler failing test

diff --git a/c3/et.c b/c3/et.c
--- a/c3/et.c
+++ b/c3/et.c
@@ -620,7 +620,6 @@
       gcptr R = item->addr;
 #ifdef DUMP_EXTRA
       fprintf(stderr, "%p->h_revision = %p (CancelLocks)\n", R, (gcptr)v);
-      abort();//XXX
 #endif
       ACCESS_ONCE(R->h_revision) = v;
 
diff --git a/c3/nursery.c b/c3/nursery.c
--- a/c3/nursery.c
+++ b/c3/nursery.c
@@ -186,6 +186,9 @@
     assert(!gcptrlist_size(&d->private_old_pointing_to_young));
     d->num_read_objects_known_old = 0;
     d->num_public_to_protected = gcptrlist_size(&d->public_to_young);
+
+    if (gcptrlist_size(&d->stolen_objects) > 0)
+        stmgc_normalize_stolen_objects();
 }
 
 static void fix_new_public_to_protected_references(struct tx_descriptor *d);
diff --git a/c3/test/test_nursery.py b/c3/test/test_nursery.py
--- a/c3/test/test_nursery.py
+++ b/c3/test/test_nursery.py
@@ -235,6 +235,13 @@
         perform_transaction(cb)
     run_parallel(f1, f1, f1)
 
+def test_many_versions():
+    p1 = nalloc(HDR)
+    for i in range(10):
+        lib.stm_commit_transaction()
+        lib.stm_begin_inevitable_transaction()
+        p1 = lib.stm_write_barrier(p1)
+
 def test_access_foreign_nursery():
     pg = palloc(HDR)
     seen = []


More information about the pypy-commit mailing list