Author: Armin Rigo <ar...@tunes.org>
Branch: queue
Changeset: r1872:277dd2ad5226
Date: 2015-06-18 23:41 +0200
http://bitbucket.org/pypy/stmgc/changeset/277dd2ad5226/

Log:    tweaks

diff --git a/c8/stm/queue.c b/c8/stm/queue.c
--- a/c8/stm/queue.c
+++ b/c8/stm/queue.c
@@ -84,8 +84,6 @@
             bool ok = tree_delete_item(pseg->active_queues, (uintptr_t)queue);
             assert(ok);
             (void)ok;
-            queue_free_entries(seg->added_in_this_transaction);
-            queue_free_entries(seg->old_objects_popped);
         }
         else {
             assert(!seg->added_in_this_transaction);
@@ -94,6 +92,9 @@
         }
 
         spinlock_release(pseg->active_queues_lock);
+
+        queue_free_entries(seg->added_in_this_transaction);
+        queue_free_entries(seg->old_objects_popped);
     }
     free(queue);
 }
@@ -164,8 +165,11 @@
         if (head != NULL) {
             queue_entry_t *old;
             queue_entry_t *tail = head;
-            while (tail->next != NULL)
+            assert(!_is_in_nursery(head->object));
+            while (tail->next != NULL) {
                 tail = tail->next;
+                assert(!_is_in_nursery(tail->object));
+            }
             dprintf(("items move to old_entries in queue %p\n", queue));
 
             spinlock_acquire(queue->old_entries_lock);
@@ -271,6 +275,8 @@
         queue_activate(queue, seg);
 
         queue_check_entry(entry);
+        assert(!_is_in_nursery(entry->object));
+
         entry->next = seg->old_objects_popped;
         seg->old_objects_popped = entry;
         return entry->object;
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to