ProcessorScheduler.st
changeset 20754 6d076c61a915
parent 20753 eae3585244d1
child 20756 14201f1661e9
equal deleted inserted replaced
20753:eae3585244d1 20754:6d076c61a915
  1546     "
  1546     "
  1547      Processor activeProcessIsSystemProcess
  1547      Processor activeProcessIsSystemProcess
  1548     "
  1548     "
  1549 
  1549 
  1550     "Modified: 17.4.1997 / 12:59:33 / stefan"
  1550     "Modified: 17.4.1997 / 12:59:33 / stefan"
       
  1551 !
       
  1552 
       
  1553 anyScheduledWindowGroupAtAll
       
  1554     "return true, if there is any window group with active topviews.
       
  1555      This is used to determine if we should stop scheduling
       
  1556      in standAlone applications."
       
  1557 
       
  1558     Screen notNil ifTrue:[
       
  1559         Screen allScreens notEmptyOrNil ifTrue:[
       
  1560             WindowGroup scheduledWindowGroups notEmptyOrNil ifTrue:[^ true]. 
       
  1561         ].
       
  1562     ].
       
  1563     ^ false
       
  1564 
       
  1565     "
       
  1566      Processor anyScheduledWindowGroupAtAll
       
  1567     "
  1551 !
  1568 !
  1552 
  1569 
  1553 anyUserProcessAtAll
  1570 anyUserProcessAtAll
  1554     "return true, if there is any user process still running,
  1571     "return true, if there is any user process still running,
  1555      or waiting on a semaphore.
  1572      or waiting on a semaphore.
  3333         "/ (and anyTimeouts is false, which means that no timeout blocks are present)
  3350         "/ (and anyTimeouts is false, which means that no timeout blocks are present)
  3334         "/ and no readSemaphores are present (which means that noone is waiting for input)
  3351         "/ and no readSemaphores are present (which means that noone is waiting for input)
  3335         "/ and no writeSemaphores are present
  3352         "/ and no writeSemaphores are present
  3336         wasBlocked := OperatingSystem blockInterrupts.
  3353         wasBlocked := OperatingSystem blockInterrupts.
  3337 
  3354 
  3338         self anyUserProcessAtAll ifFalse:[
  3355         self anyScheduledWindowGroupAtAll ifFalse:[
  3339             'Processor [info]: end of dispatch' infoPrintCR.
  3356             self anyUserProcessAtAll ifFalse:[
  3340             dispatching := false.
  3357                 'Processor [info]: end of dispatch' infoPrintCR.
  3341             MiniInspector basicNew printInstVarsOf:self.
  3358                 dispatching := false.
  3342             MiniDebugger enter:thisContext withMessage:'about to exit' mayProceed:true.
  3359                 MiniInspector basicNew printInstVarsOf:self.
       
  3360                 MiniDebugger enter:thisContext withMessage:'about to exit' mayProceed:true.
       
  3361             ].
  3343         ].
  3362         ].
  3344         
  3363         
  3345         wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
  3364         wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
  3346     ].
  3365     ].
  3347 !
  3366 !