[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cups-commit
Subject:    [cups.commit] [CUPS] r8716 - in trunk: . scheduler
From:       cups-dev () easysw ! com
Date:       2009-06-16 17:51:58
Message-ID: 9485-cups.commit () news ! easysw ! com
[Download RAW message or body]

Author: mike
Date: 2009-06-16 10:51:55 -0700 (Tue, 16 Jun 2009)
New Revision: 8716
Log:
Don't send notifications when the actual printer-state-reasons values have not
changed.


Modified:
   trunk/CHANGES.txt
   trunk/scheduler/job.c

Modified: trunk/CHANGES.txt
===================================================================
--- trunk/CHANGES.txt	2009-06-15 22:12:16 UTC (rev 8715)
+++ trunk/CHANGES.txt	2009-06-16 17:51:55 UTC (rev 8716)
@@ -1,9 +1,12 @@
-CHANGES.txt - 2009-06-15
+CHANGES.txt - 2009-06-16
 ------------------------
 
 CHANGES IN CUPS V1.4.0
 
 	- Localization updates (STR #3223)
+	- The scheduler did not minimize the number of printer state events that
+	  were generated by filter STATE: messages, which could lead to poor
+	  performance.
 	- The USB backend on Mac OS X did not cleanly cancel a job.
 	- The network backends now set the connecting-to-device printer-state-
 	  reasons value when looking up the address and copying the print data

Modified: trunk/scheduler/job.c
===================================================================
--- trunk/scheduler/job.c	2009-06-15 22:12:16 UTC (rev 8715)
+++ trunk/scheduler/job.c	2009-06-16 17:51:55 UTC (rev 8716)
@@ -4018,9 +4018,8 @@
         cupsdStopPrinter(job->printer, 1);
 	return;
       }
-      else
+      else if (cupsdSetPrinterReasons(job->printer, message))
       {
-	cupsdSetPrinterReasons(job->printer, message);
 	cupsdAddPrinterHistory(job->printer);
 	event |= CUPSD_EVENT_PRINTER_STATE;
       }
@@ -4169,25 +4168,31 @@
 
       if (*ptr)
       {
-	cupsdSetPrinterReasons(job->printer,
-	                       "+com.apple.print.recoverable-warning");
-	cupsdSetString(&(job->printer->recoverable), ptr);
-	cupsdAddPrinterHistory(job->printer);
-	event |= CUPSD_EVENT_PRINTER_STATE;
+	if (cupsdSetPrinterReasons(job->printer,
+				   "+com.apple.print.recoverable-warning") ||
+	    !job->printer->recoverable ||
+	    strcmp(job->printer->recoverable, ptr))
+	{
+	  cupsdSetString(&(job->printer->recoverable), ptr);
+	  cupsdAddPrinterHistory(job->printer);
+	  event |= CUPSD_EVENT_PRINTER_STATE;
+	}
       }
     }
     else if (!strncmp(message, "recovered:", 10))
     {
-      cupsdSetPrinterReasons(job->printer,
-                             "-com.apple.print.recoverable-warning");
-
       ptr = message + 10;
       while (isspace(*ptr & 255))
         ptr ++;
 
-      cupsdSetString(&(job->printer->recoverable), ptr);
-      cupsdAddPrinterHistory(job->printer);
-      event |= CUPSD_EVENT_PRINTER_STATE;
+      if (cupsdSetPrinterReasons(job->printer,
+                                 "-com.apple.print.recoverable-warning") ||
+	  !job->printer->recoverable || strcmp(job->printer->recoverable, ptr))
+      {
+	cupsdSetString(&(job->printer->recoverable), ptr);
+	cupsdAddPrinterHistory(job->printer);
+	event |= CUPSD_EVENT_PRINTER_STATE;
+      }
     }
     else
     {

_______________________________________________
cups-commit mailing list
cups-commit@easysw.com
http://lists.easysw.com/mailman/listinfo/cups-commit
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic