[Glass] Printer spooler and TransientSemaphore wait

dario.trussardi@tiscali.it via Glass glass at lists.gemtalksystems.com
Tue Jul 10 08:17:13 PDT 2018


Ciao,

     in the application based on Seaside, i manage some printers devices.

Every device have a RcQueue where the system add the 'works' to print.

Besides there is a topaz script/server, which read the prints jobs and 
does the printing.

     Now this script is based spoolSemaphore class variable set to on 
TransientSemaphore,

who waits for the presence of a new document to be reported,

segnaled when one relative entry is added to one RcQueue printer device.

This is the printerSpool script:

           startPrinterSpool
           | cllDbSpoolerActive flagLo......................  |

           UserGlobals at: #'FlagSpooler' put: true.

           spoolSemaphore := TransientSemaphore new.

              [ UserGlobals at: #'FlagSpooler' ]
                 whileTrue: [

                       spoolSemaphore  waitForSeconds: 1.

                     System commit. " Update the session data "
                     counterLimit := DTRdbOperatingDevice ticktesForCicle.

                     ....................

                     .............

          If in the whileTrue loop i define the:

               spoolSemaphore  waitForSeconds: 1.

         the topaz script works, butnot waiting as I would like .....

If in the whileTrue loop i define the:

               spoolSemaphore  wait.

         the topaz script generates the error:

ERROR 2366 , a ThreadError occurred (error 2366), 
reason:rtErrSchedulerDeadlocked, The ProcessorScheduler is deadlocked 
(ThreadError)

Considerations... ?

Thanks,

Dario

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20180710/d8d1a86f/attachment-0001.html>


More information about the Glass mailing list