summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2023-11-26 21:00:45 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-11-26 21:00:45 +0100
commit9e419ee8f47028e8f58c456b6456c348f7f0bcfa (patch)
tree7b083214b5fe9341332e409e83ec5fac244a8ced
parent39a3718b4e5f9c3d2977dc89a8792fd8b6b8e572 (diff)
libports: Add more assertion
flip_generations needs to make sure it is not throwing away a list of objects to be released.
-rw-r--r--libports/port-deref-deferred.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libports/port-deref-deferred.c b/libports/port-deref-deferred.c
index 76373ebb..c33430c1 100644
--- a/libports/port-deref-deferred.c
+++ b/libports/port-deref-deferred.c
@@ -61,6 +61,7 @@ static inline void
flip_generations (struct ports_threadpool *pool)
{
assert_backtrace (pool->old_threads == 0);
+ assert_backtrace (pool->old_objects == NULL);
pool->old_threads = pool->young_threads;
pool->old_objects = pool->young_objects;
pool->young_threads = 0;
@@ -103,6 +104,7 @@ _ports_thread_quiescent (struct ports_threadpool *pool,
if (pool->old_threads == 0)
{
free_list = pool->old_objects;
+ pool->old_objects = NULL;
flip_generations (pool);
}
}