chiark / gitweb /
manager: introduce watch_init() initializer for watches
authorLennart Poettering <lennart@poettering.net>
Wed, 21 Nov 2012 23:38:55 +0000 (00:38 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 21 Nov 2012 23:45:22 +0000 (00:45 +0100)
src/core/manager.c
src/core/manager.h
src/core/service.c
src/core/unit.c

index f932c79a1b8b35ffde66cc90d2e73279aa1b5db1..72ce2f25956fef35c1b1a482142d3c5355f1bc72 100644 (file)
@@ -1363,7 +1363,8 @@ static int process_event(Manager *m, struct epoll_event *ev) {
                 ssize_t k;
 
                 /* Some timer event, to be dispatched to the units */
-                if ((k = read(w->fd, &v, sizeof(v))) != sizeof(v)) {
+                k = read(w->fd, &v, sizeof(v));
+                if (k != sizeof(v)) {
 
                         if (k < 0 && (errno == EINTR || errno == EAGAIN))
                                 break;
@@ -2307,3 +2308,10 @@ bool manager_get_show_status(Manager *m) {
 
         return plymouth_running();
 }
+
+void watch_init(Watch *w) {
+        assert(w);
+
+        w->type = WATCH_INVALID;
+        w->fd = -1;
+}
index 22145024f1bd20051a7bbfd96455ac507b95ffdf..1644bd6f77140efea91a4782a4f4e6b0abe40b94 100644 (file)
@@ -291,3 +291,5 @@ void manager_recheck_journal(Manager *m);
 
 void manager_set_show_status(Manager *m, bool b);
 bool manager_get_show_status(Manager *m);
+
+void watch_init(Watch *w);
index aad6d664396e0bc594e6eb727bdf1646b467e6fa..34d24ffa92b54ea1eb843809d200df7a26aea9de 100644 (file)
@@ -127,9 +127,9 @@ static void service_init(Unit *u) {
         s->restart_usec = DEFAULT_RESTART_USEC;
         s->type = _SERVICE_TYPE_INVALID;
 
-        s->watchdog_watch.type = WATCH_INVALID;
+        watch_init(&s->watchdog_watch);
+        watch_init(&s->timer_watch);
 
-        s->timer_watch.type = WATCH_INVALID;
 #ifdef HAVE_SYSV_COMPAT
         s->sysv_start_priority = -1;
         s->sysv_start_priority_from_rcnd = -1;
index 99e1c27948cfffc01b711e3bd4c7e4bd4463ebc6..82dd617e35175cba8a3d71adb795932d4a8db647 100644 (file)
@@ -1580,7 +1580,8 @@ int unit_watch_timer(Unit *u, usec_t delay, Watch *w) {
         } else if (w->type == WATCH_INVALID) {
 
                 ours = true;
-                if ((fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK|TFD_CLOEXEC)) < 0)
+                fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK|TFD_CLOEXEC);
+                if (fd < 0)
                         return -errno;
         } else
                 assert_not_reached("Invalid watch type");