From 54c1a6ab8cfcf424c15e41643c4fb19ca218fd2f Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 14 Apr 2019 20:13:40 +0900 Subject: [PATCH 1/4] core: change type of Service::timeout_abort_set to bool Follow-up for dc653bf487bae9d1ddf794442bf4176fee173b41 (#11211). --- src/core/service.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/service.h b/src/core/service.h index 7f1dfe0a8a5..1b8df19771c 100644 --- a/src/core/service.h +++ b/src/core/service.h @@ -98,7 +98,7 @@ struct Service { usec_t timeout_start_usec; usec_t timeout_stop_usec; usec_t timeout_abort_usec; - usec_t timeout_abort_set; + bool timeout_abort_set; usec_t runtime_max_usec; dual_timestamp watchdog_timestamp; From 3bf0cb65f540b313d5b847b913632bad43451bf5 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 14 Apr 2019 20:45:31 +0900 Subject: [PATCH 2/4] core: use BUS_DEFINE_PROPERTY_GET() macro at more places --- src/core/dbus-manager.c | 22 +--------------------- src/core/dbus-service.c | 22 +--------------------- 2 files changed, 2 insertions(+), 42 deletions(-) diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index 7ca3b815efa..c113140e8f6 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -53,6 +53,7 @@ static BUS_DEFINE_PROPERTY_GET2(property_get_system_state, "s", Manager, manager static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_timer_slack_nsec, "t", (uint64_t) prctl(PR_GET_TIMERSLACK)); static BUS_DEFINE_PROPERTY_GET_REF(property_get_hashmap_size, "u", Hashmap *, hashmap_size); static BUS_DEFINE_PROPERTY_GET_REF(property_get_set_size, "u", Set *, set_size); +static BUS_DEFINE_PROPERTY_GET(property_get_default_timeout_abort_usec, "t", Manager, manager_default_timeout_abort_usec); static int property_get_virtualization( sd_bus *bus, @@ -287,27 +288,6 @@ static int property_set_runtime_watchdog( return watchdog_set_timeout(t); } -static int property_get_default_timeout_abort_usec( - sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) { - - Manager *m = userdata; - usec_t t; - - assert(bus); - assert(reply); - assert(m); - - t = manager_default_timeout_abort_usec(m); - - return sd_bus_message_append(reply, "t", t); -} - static int bus_get_unit_by_name(Manager *m, sd_bus_message *message, const char *name, Unit **ret_unit, sd_bus_error *error) { Unit *u; int r; diff --git a/src/core/dbus-service.c b/src/core/dbus-service.c index 4fba8ae62f7..824955b944d 100644 --- a/src/core/dbus-service.c +++ b/src/core/dbus-service.c @@ -28,27 +28,7 @@ static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_result, service_result, Service static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_restart, service_restart, ServiceRestart); static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_notify_access, notify_access, NotifyAccess); static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_emergency_action, emergency_action, EmergencyAction); - -static int property_get_timeout_abort_usec( - sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) { - - Service *s = userdata; - usec_t t; - - assert(bus); - assert(reply); - assert(s); - - t = service_timeout_abort_usec(s); - - return sd_bus_message_append(reply, "t", t); -} +static BUS_DEFINE_PROPERTY_GET(property_get_timeout_abort_usec, "t", Service, service_timeout_abort_usec); static int property_get_exit_status_set( sd_bus *bus, From 9c79f0e0a066c957e626c8c7fbaf712eecb91fda Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 14 Apr 2019 20:46:24 +0900 Subject: [PATCH 3/4] core: add assertion in two inline functions --- src/core/manager.h | 1 + src/core/service.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/core/manager.h b/src/core/manager.h index 4ab4231b3b9..92bfd489975 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -420,6 +420,7 @@ struct Manager { }; static inline usec_t manager_default_timeout_abort_usec(Manager *m) { + assert(m); return m->default_timeout_abort_set ? m->default_timeout_abort_usec : m->default_timeout_stop_usec; } diff --git a/src/core/service.h b/src/core/service.h index 1b8df19771c..2aebc5f09d8 100644 --- a/src/core/service.h +++ b/src/core/service.h @@ -192,6 +192,7 @@ struct Service { }; static inline usec_t service_timeout_abort_usec(Service *s) { + assert(s); return s->timeout_abort_set ? s->timeout_abort_usec : s->timeout_stop_usec; } From dcab85be18ff2e9f5aa164801b17c37cd650a660 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 14 Apr 2019 20:47:13 +0900 Subject: [PATCH 4/4] core: do not show TimeoutStopSec= in dump message if it is not set --- src/core/service.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/core/service.c b/src/core/service.c index 0efd8618882..c4d83785578 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -861,16 +861,19 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) { fprintf(f, "%sRestartSec: %s\n" "%sTimeoutStartSec: %s\n" - "%sTimeoutStopSec: %s\n" - "%sTimeoutAbortSec: %s\n" - "%sRuntimeMaxSec: %s\n" - "%sWatchdogSec: %s\n", + "%sTimeoutStopSec: %s\n", prefix, format_timespan(buf_restart, sizeof(buf_restart), s->restart_usec, USEC_PER_SEC), prefix, format_timespan(buf_start, sizeof(buf_start), s->timeout_start_usec, USEC_PER_SEC), - prefix, format_timespan(buf_stop, sizeof(buf_stop), s->timeout_stop_usec, USEC_PER_SEC), - prefix, s->timeout_abort_set - ? format_timespan(buf_abort, sizeof(buf_abort), s->timeout_abort_usec, USEC_PER_SEC) - : "", + prefix, format_timespan(buf_stop, sizeof(buf_stop), s->timeout_stop_usec, USEC_PER_SEC)); + + if (s->timeout_abort_set) + fprintf(f, + "%sTimeoutAbortSec: %s\n", + prefix, format_timespan(buf_abort, sizeof(buf_abort), s->timeout_abort_usec, USEC_PER_SEC)); + + fprintf(f, + "%sRuntimeMaxSec: %s\n" + "%sWatchdogSec: %s\n", prefix, format_timespan(buf_runtime, sizeof(buf_runtime), s->runtime_max_usec, USEC_PER_SEC), prefix, format_timespan(buf_watchdog, sizeof(buf_watchdog), s->watchdog_usec, USEC_PER_SEC));