u->meta.gc_marker == -gc_marker)
return;
- if (!u->meta.in_cleanup_queue)
+ if (u->meta.in_cleanup_queue)
goto bad;
if (unit_check_gc(u))
log_debug("Running GC...");
- gc_marker = m->gc_marker;
- m->gc_marker = MIN(0, m->gc_marker + 1);
+ gc_marker = ++m->gc_marker;
+
+ if (m->gc_marker < 0)
+ m->gc_marker = 1;
while ((meta = m->gc_queue)) {
assert(meta->in_gc_queue);