systemctl-start-unit: Subscribe() is unnecessary if we RefUnit explicitly
Subscribe() enables full signal delivery on API bus. But aside from that, if a unit/job is explicitly Ref()'d, manager also emits the signal. See bus_foreach_bus() for details. bus-wait-for-units refs every unit to wait for, so there's no need to Subscribe() on top of that. In verb_clean_or_freeze() Subscribe() is not called either.
This commit is contained in:
@@ -381,10 +381,6 @@ int verb_start(int argc, char *argv[], void *userdata) {
|
||||
}
|
||||
|
||||
if (arg_wait) {
|
||||
r = bus_call_method_async(bus, NULL, bus_systemd_mgr, "Subscribe", NULL, NULL, NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to enable subscription: %m");
|
||||
|
||||
r = bus_wait_for_units_new(bus, &wu);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to allocate unit watch context: %m");
|
||||
@@ -408,7 +404,7 @@ int verb_start(int argc, char *argv[], void *userdata) {
|
||||
}
|
||||
|
||||
if (!arg_no_block) {
|
||||
const char* extra_args[4];
|
||||
const char *extra_args[4];
|
||||
WaitJobsFlags flags = 0;
|
||||
|
||||
SET_FLAG(flags, BUS_WAIT_JOBS_LOG_ERROR, !arg_quiet);
|
||||
|
||||
Reference in New Issue
Block a user