X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Funit.c;h=3f862aa4c49f187e061c8fb82e0c297780ed3f6a;hp=ea55c709b016752f17853ea69419c91fda96a5eb;hb=9a0549093332880df47c4218209ce126b8586835;hpb=95ae05c0e79868c22b3e8e6fbc53432786876730 diff --git a/src/core/unit.c b/src/core/unit.c index ea55c709b..3f862aa4c 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -121,7 +121,6 @@ static void unit_init(Unit *u) { cc->cpu_accounting = u->manager->default_cpu_accounting; cc->blockio_accounting = u->manager->default_blockio_accounting; cc->memory_accounting = u->manager->default_memory_accounting; - cc->cpu_quota_period_usec = u->manager->default_cpu_quota_period_usec; } ec = unit_get_exec_context(u); @@ -509,6 +508,7 @@ void unit_free(Unit *u) { } set_remove(u->manager->failed_units, u); + set_remove(u->manager->startup_units, u); free(u->description); strv_free(u->documentation); @@ -1076,12 +1076,17 @@ static int unit_add_startup_units(Unit *u) { int r = 0; c = unit_get_cgroup_context(u); - if (c != NULL && manager_state(u->manager) == MANAGER_STARTING && - (c->startup_cpu_shares_set || c->startup_blockio_weight_set)) { - r = set_put(u->manager->startup_units, u); - if (r == -EEXIST) - r = 0; - } + if (!c) + return 0; + + if (c->startup_cpu_shares == (unsigned long) -1 && + c->startup_blockio_weight == (unsigned long) -1) + return 0; + + r = set_put(u->manager->startup_units, u); + if (r == -EEXIST) + return 0; + return r; }