]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Fix cancel of jobs with multiple documents (<rdar://problem/24854834>)
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Thu, 10 Mar 2016 17:01:08 +0000 (17:01 +0000)
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Thu, 10 Mar 2016 17:01:08 +0000 (17:01 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13131 a1ca3aef-8c08-0410-bb20-df032aa958be

CHANGES.txt
scheduler/main.c

index a51b57fedc578808abeb95965a60204ffa2688f9..eee94d126e869c8e88a7ba897e2dfd3808fed330 100644 (file)
@@ -1,8 +1,10 @@
-CHANGES.txt - 2.2b1 - 2016-03-09
+CHANGES.txt - 2.2b1 - 2016-03-10
 --------------------------------
 
 CHANGES IN CUPS V2.2b1
 
+       - The scheduler did not cancel multi-document jobs immediately
+         (<rdar://problem/24854834>)
        - The scheduler did not return non-shared printers to local clients
          unless they connected to the domain socket (<rdar://problem/24566996>)
        - The scheduler now reads the spool directory if one or more job cache
index 8bfb05fc52411116b924e10db4429a209b047764..f9b46bad6ed6f103e2b1c7ae75906b66a6cfdb8b 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * "$Id$"
- *
  * Main loop for the CUPS scheduler.
  *
  * Copyright 2007-2016 by Apple Inc.
@@ -1507,7 +1505,19 @@ process_children(void)
        * filters are done, and if so move to the next file.
        */
 
-       if (job->current_file < job->num_files && job->printer)
+       if (job->state_value >= IPP_JOB_CANCELED)
+       {
+        /*
+         * Remove the job from the active list if there are no processes still
+         * running for it...
+         */
+
+         for (i = 0; job->filters[i] < 0; i++);
+
+         if (!job->filters[i] && job->backend <= 0)
+           cupsArrayRemove(ActiveJobs, job);
+       }
+       else if (job->current_file < job->num_files && job->printer)
        {
          for (i = 0; job->filters[i] < 0; i ++);
 
@@ -1522,18 +1532,6 @@ process_children(void)
            cupsdContinueJob(job);
          }
        }
-       else if (job->state_value >= IPP_JOB_CANCELED)
-       {
-        /*
-         * Remove the job from the active list if there are no processes still
-         * running for it...
-         */
-
-         for (i = 0; job->filters[i] < 0; i++);
-
-         if (!job->filters[i] && job->backend <= 0)
-           cupsArrayRemove(ActiveJobs, job);
-       }
       }
     }
 
@@ -2201,8 +2199,3 @@ usage(int status)                 /* O - Exit status */
 
   exit(status);
 }
-
-
-/*
- * End of "$Id$".
- */