ProcSched.st
changeset 3969 0f30268b10c3
parent 3967 5e0053fdbf52
child 4002 341a896cb334
equal deleted inserted replaced
3968:a526029723ac 3969:0f30268b10c3
   556 
   556 
   557     |wasBlocked|
   557     |wasBlocked|
   558 
   558 
   559     wasBlocked := OperatingSystem blockInterrupts.
   559     wasBlocked := OperatingSystem blockInterrupts.
   560     idleActions notNil ifTrue:[
   560     idleActions notNil ifTrue:[
   561        idleActions removeIdentical:aBlock ifAbsent:[]
   561        idleActions removeIdentical:aBlock ifAbsent:nil
   562     ].
   562     ].
   563     wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
   563     wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
   564 
   564 
   565     "Modified: 1.2.1997 / 12:09:46 / cg"
   565     "Modified: 1.2.1997 / 12:09:46 / cg"
   566 ! !
   566 ! !
   930     l := quiescentProcessLists at:pri.
   930     l := quiescentProcessLists at:pri.
   931 
   931 
   932     "notice: this is slightly faster than putting the if-code into
   932     "notice: this is slightly faster than putting the if-code into
   933      the ifAbsent block, because [] is a shared cheap block, created at compile time
   933      the ifAbsent block, because [] is a shared cheap block, created at compile time
   934     "
   934     "
   935     (l isNil or:[(l remove:activeProcess ifAbsent:[]) isNil]) ifTrue:[
   935     (l isNil or:[(l remove:activeProcess ifAbsent:nil) isNil]) ifTrue:[
   936         "/ 'Processor [warning]: bad immediateInterrupt: not on run list' errorPrintCR.
   936         "/ 'Processor [warning]: bad immediateInterrupt: not on run list' errorPrintCR.
   937         MiniDebugger enterWithMessage:'bad immediateInterrupt: not on run list'.
   937         MiniDebugger enterWithMessage:'bad immediateInterrupt: not on run list'.
   938         ^ self
   938         ^ self
   939     ].
   939     ].
       
   940 
   940 "/    id := scheduler id.
   941 "/    id := scheduler id.
   941 "/    pri := scheduler priority.
   942 "/    pri := scheduler priority.
   942 "/    scheduler state:#active.
   943 "/    scheduler state:#active.
   943 "/
   944 "/
   944 "/    "
   945 "/    "
  1822     l := quiescentProcessLists at:pri.
  1823     l := quiescentProcessLists at:pri.
  1823 
  1824 
  1824     "notice: this is slightly faster than putting the if-code into
  1825     "notice: this is slightly faster than putting the if-code into
  1825      the ifAbsent block, because [] is a shared cheap block, created at compile time
  1826      the ifAbsent block, because [] is a shared cheap block, created at compile time
  1826     "
  1827     "
  1827     (l isNil or:[(l remove:aProcess ifAbsent:[]) isNil]) ifTrue:[
  1828     (l isNil or:[(l remove:aProcess ifAbsent:nil) isNil]) ifTrue:[
  1828         wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
  1829         wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
  1829         'Processor [warning]: bad suspend: not on run list' errorPrintCR.
  1830         'Processor [warning]: bad suspend: not on run list' errorPrintCR.
  1830         "/ MiniDebugger enterWithMessage:'bad suspend: not on run list'.
  1831         "/ MiniDebugger enterWithMessage:'bad suspend: not on run list'.
  1831         self threadSwitch:scheduler.
  1832         self threadSwitch:scheduler.
  1832         ^ self
  1833         ^ self
  2990 ! !
  2991 ! !
  2991 
  2992 
  2992 !ProcessorScheduler class methodsFor:'documentation'!
  2993 !ProcessorScheduler class methodsFor:'documentation'!
  2993 
  2994 
  2994 version
  2995 version
  2995     ^ '$Header: /cvs/stx/stx/libbasic/Attic/ProcSched.st,v 1.170 1999-02-04 12:08:47 cg Exp $'
  2996     ^ '$Header: /cvs/stx/stx/libbasic/Attic/ProcSched.st,v 1.171 1999-02-08 12:33:29 cg Exp $'
  2996 ! !
  2997 ! !
  2997 ProcessorScheduler initialize!
  2998 ProcessorScheduler initialize!