]> err.no Git - systemd/commitdiff
manager: fix job mode for SIGRTMIN+1, +2
authorMichal Schmidt <mschmidt@redhat.com>
Fri, 23 Sep 2011 07:37:45 +0000 (09:37 +0200)
committerMichal Schmidt <mschmidt@redhat.com>
Fri, 23 Sep 2011 08:18:07 +0000 (10:18 +0200)
The test did not work as intended and always resulted in JOB_REPLACE.

src/manager.c

index 6311c103618a72ec0ab8335ae9ae2aaec5165334..cf308ac4d34834c3a52dacac045f1ecc289abec5 100644 (file)
@@ -2233,8 +2233,9 @@ static int manager_process_signal_fd(Manager *m) {
 
                         if ((int) sfsi.ssi_signo >= SIGRTMIN+0 &&
                             (int) sfsi.ssi_signo < SIGRTMIN+(int) ELEMENTSOF(target_table)) {
-                                manager_start_target(m, target_table[sfsi.ssi_signo - SIGRTMIN],
-                                                     (sfsi.ssi_signo == 1 || sfsi.ssi_signo == 2) ? JOB_ISOLATE : JOB_REPLACE);
+                                int idx = (int) sfsi.ssi_signo - SIGRTMIN;
+                                manager_start_target(m, target_table[idx],
+                                                     (idx == 1 || idx == 2) ? JOB_ISOLATE : JOB_REPLACE);
                                 break;
                         }