]> andersk Git - moira.git/blobdiff - server/mr_main.c
new incremental update scheme
[moira.git] / server / mr_main.c
index 8bcaa78c6a25f5e8909decad252db737534381d5..ec6a13ca5f9d5d5ad083e106e95a134c61e5164f 100644 (file)
@@ -190,6 +190,8 @@ main(argc, argv)
                if (status == -1) {
                        if (errno != EINTR)
                          com_err(whoami, errno, " error from op_select");
+                       if (!inc_running || now - inc_started > INC_TIMEOUT)
+                         next_incremental();
                        continue;
                } else if (status != -2) {
                        com_err(whoami, 0, " wrong return from op_select_any");
@@ -197,6 +199,8 @@ main(argc, argv)
                }
                if (takedown) break;
                time(&now);
+               if (!inc_running || now - inc_started > INC_TIMEOUT)
+                 next_incremental();
 #ifdef notdef
                fprintf(stderr, "    tick\n");
 #endif notdef
@@ -477,6 +481,8 @@ void reapchild()
     int pid;
 
     while ((pid = wait3(&status, WNOHANG, (struct rusage *)0)) > 0) {
+       if (pid == inc_pid)
+         inc_running = 0;
        if  (!takedown && (status.w_termsig != 0 || status.w_retcode != 0))
          com_err(whoami, 0, "%d: child exits with signal %d status %d",
                  pid, status.w_termsig, status.w_retcode);
This page took 0.02523 seconds and 4 git commands to generate.