equal
deleted
inserted
replaced
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! |