Author: Remi Meier <remi.me...@inf.ethz.ch>
Branch: 
Changeset: r1359:0308c7a328d1
Date: 2014-09-05 13:02 +0200
http://bitbucket.org/pypy/stmgc/changeset/0308c7a328d1/

Log:    fix

diff --git a/c8/stm/core.c b/c8/stm/core.c
--- a/c8/stm/core.c
+++ b/c8/stm/core.c
@@ -108,11 +108,10 @@
         size_t i = 0;
         fprintf(stderr, "elem (%p, %d)\n", cl->next, cl->segment_num);
         object_t *obj;
-        do {
-            obj = cl->written[i];
+        while ((obj = cl->written[i])) {
             fprintf(stderr, "-> %p\n", obj);
             i++;
-        } while ((obj = cl->written[i]));
+        };
     }
 }
 
@@ -122,8 +121,11 @@
     size_t obj_size;
 
     uintptr_t pagenum = (uintptr_t)obj / 4096UL;
-    if (!is_private_log_page_in(STM_SEGMENT->segment_num, pagenum))
+    if (!is_private_log_page_in(STM_SEGMENT->segment_num, pagenum)) {
+        assert(!is_shared_log_page(pagenum));
+        assert(!is_readable_log_page_in(STM_SEGMENT->segment_num, pagenum));
         return;                 /* only do in sighandler */
+    }
 
     /* should be readable & private (XXX: maybe not after major GCs) */
     assert(is_readable_log_page_in(from_seg, pagenum));
diff --git a/c8/stm/setup.c b/c8/stm/setup.c
--- a/c8/stm/setup.c
+++ b/c8/stm/setup.c
@@ -159,6 +159,8 @@
 
     munmap(stm_object_pages, TOTAL_MEMORY);
     stm_object_pages = NULL;
+    commit_log_root.next = NULL; /* xxx:free them */
+    commit_log_root.segment_num = -1;
     close_fd_mmap(stm_object_pages_fd);
 
     teardown_sync();
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to