ProcessorScheduler.st
changeset 13556 51005e5e65cd
parent 13164 b09c736a2e9b
child 13577 5caa91ac2963
equal deleted inserted replaced
13555:3a25653f9c27 13556:51005e5e65cd
   812     "/  this safes a bit of memory allocation in the scheduler)
   812     "/  this safes a bit of memory allocation in the scheduler)
   813 
   813 
   814     dispatchAction := [self dispatch].
   814     dispatchAction := [self dispatch].
   815 
   815 
   816     handlerAction := [:ex |
   816     handlerAction := [:ex |
   817 			('Processor [info]: ignored signal (', ex signal printString, ')') infoPrintCR.
   817                         ('Processor [info]: ignored signal (', ex signal printString, ')') infoPrintCR.
   818 			ex return
   818                         ex return
   819 		     ].
   819                      ].
   820 
   820 
   821     ignoredSignals := SignalSet
   821     ignoredSignals := SignalSet
   822 			with:TerminateProcessRequest
   822                         with:TerminateProcessRequest
   823 			with:AbortAllOperationRequest.
   823                         with:RecursionError
       
   824                         with:AbortAllOperationRequest.
   824 
   825 
   825     "/
   826     "/
   826     "/ I made this an extra call to dispatch; this allows recompilation
   827     "/ I made this an extra call to dispatch; this allows recompilation
   827     "/  of the dispatch-handling code in the running system.
   828     "/  of the dispatch-handling code in the running system.
   828     "/
   829     "/
   829     [dispatching] whileTrue:[
   830     [dispatching] whileTrue:[
   830 	ignoredSignals handle:handlerAction do:dispatchAction
   831         ignoredSignals handle:handlerAction do:dispatchAction
   831     ].
   832     ].
   832 
   833 
   833     "/ we arrive here in standalone Apps,
   834     "/ we arrive here in standalone Apps,
   834     "/ when the last process at or above UserSchedulingPriority process died.
   835     "/ when the last process at or above UserSchedulingPriority process died.
   835     "/ regular ST/X stays in above loop forever
   836     "/ regular ST/X stays in above loop forever
   836 
   837 
   837     'Processor [info]: finish dispatch (no more processes)' infoPrintCR.
   838     'Processor [info]: finish dispatch (no more processes)' infoPrintCR.
   838 
   839 
   839     "Modified: / 23.9.1996 / 14:19:56 / stefan"
   840     "Modified: / 23-09-1996 / 14:19:56 / stefan"
   840     "Modified: / 17.11.2001 / 11:10:23 / cg"
   841     "Modified: / 05-08-2011 / 09:54:36 / cg"
   841 !
   842 !
   842 
   843 
   843 exitWhenNoMoreUserProcesses:aBoolean
   844 exitWhenNoMoreUserProcesses:aBoolean
   844     "set/clear the flag, which controls if the scheduler should exit and return
   845     "set/clear the flag, which controls if the scheduler should exit and return
   845      when the last user process finishes (and therefore exit the smalltalk system).
   846      when the last user process finishes (and therefore exit the smalltalk system).
  3376 ! !
  3377 ! !
  3377 
  3378 
  3378 !ProcessorScheduler class methodsFor:'documentation'!
  3379 !ProcessorScheduler class methodsFor:'documentation'!
  3379 
  3380 
  3380 version
  3381 version
  3381     ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.257 2010-12-08 15:09:24 stefan Exp $'
  3382     ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.258 2011-08-05 07:54:52 cg Exp $'
  3382 !
  3383 !
  3383 
  3384 
  3384 version_CVS
  3385 version_CVS
  3385     ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.257 2010-12-08 15:09:24 stefan Exp $'
  3386     ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.258 2011-08-05 07:54:52 cg Exp $'
  3386 ! !
  3387 ! !
  3387 
  3388 
  3388 ProcessorScheduler initialize!
  3389 ProcessorScheduler initialize!