core/manager: do not pop gc_unit_queue before unit_gc_sweep()
Follow-up for 52e3671bf7
unit_gc_sweep() might try to add the unit to gc queue again.
While that becomes no-op as Unit.in_gc_queue is not cleared
yet, it induces minor inconsistency of states.
This commit is contained in:
+3
-2
@@ -1367,7 +1367,6 @@ good:
|
||||
|
||||
static unsigned manager_dispatch_gc_unit_queue(Manager *m) {
|
||||
unsigned n = 0, gc_marker;
|
||||
Unit *u;
|
||||
|
||||
assert(m);
|
||||
|
||||
@@ -1379,11 +1378,13 @@ static unsigned manager_dispatch_gc_unit_queue(Manager *m) {
|
||||
|
||||
gc_marker = m->gc_marker;
|
||||
|
||||
while ((u = LIST_POP(gc_queue, m->gc_unit_queue))) {
|
||||
Unit *u;
|
||||
while ((u = m->gc_unit_queue)) {
|
||||
assert(u->in_gc_queue);
|
||||
|
||||
unit_gc_sweep(u, gc_marker);
|
||||
|
||||
LIST_REMOVE(gc_queue, m->gc_unit_queue, u);
|
||||
u->in_gc_queue = false;
|
||||
|
||||
n++;
|
||||
|
||||
Reference in New Issue
Block a user