]> andersk Git - moira.git/blobdiff - server/mr_glue.c
Further changes to prevent INGRES error 40100.
[moira.git] / server / mr_glue.c
index a7b4d80a1c911888fe52ccd705ccf01e374011bf..b9f39f6991e5201a0cd1340def35eec4b0154465 100644 (file)
@@ -129,8 +129,10 @@ int mr_query(name, argc, argv, callproc, callarg)
     time(&now);
     hints.proc = callproc;
     hints.hint = callarg;
-    return mr_process_query(&pseudo_client, name, argc, argv,
-                            callback, &hints);
+    next_incremental();
+    return mr_process_query(&pseudo_client, name, argc,
+                           mr_copy_args(argv, argc), callback, &hints);
+
 }
 
 int mr_access(name, argc, argv)
@@ -139,7 +141,8 @@ int mr_access(name, argc, argv)
     char **argv;               /* Args */
 {
     time(&now);
-    return mr_check_access(&pseudo_client, name, argc, argv);
+    return mr_check_access(&pseudo_client, name, argc,
+                          mr_copy_args(argv, argc));
 }
 
 int mr_query_internal(argc, argv, callproc, callarg)
@@ -153,8 +156,9 @@ int mr_query_internal(argc, argv, callproc, callarg)
     time(&now);
     hints.proc = callproc;
     hints.hint = callarg;
-    return mr_process_query(&pseudo_client, argv[0], argc-1, argv+1,
-                            callback, &hints);
+    next_incremental();
+    return mr_process_query(&pseudo_client, argv[0], argc-1,
+                           mr_copy_args(argv+1, argc-1), callback, &hints);
 }
 
 int mr_access_internal(argc, argv)
@@ -162,7 +166,8 @@ int mr_access_internal(argc, argv)
     char **argv;
 {
     time(&now);
-    return mr_check_access(&pseudo_client, argv[0], argc-1, argv+1);
+    return mr_check_access(&pseudo_client, argv[0], argc-1,
+                          mr_copy_args(argv+1, argc-1));
 }
 
 mr_shutdown(why)
@@ -213,6 +218,10 @@ void reapchild()
     int pid;
 
     while ((pid = wait3(&status, WNOHANG, (struct rusage *)0)) > 0) {
+       if (pid == inc_pid) {
+           inc_running = 0;
+           next_incremental();
+       }
        if  (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.037457 seconds and 4 git commands to generate.