[etoys-dev] Etoys: ST80-bf.4.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat May 8 15:49:35 EDT 2010
Bert Freudenberg uploaded a new version of ST80 to project Etoys:
http://source.squeak.org/etoys/ST80-bf.4.mcz
==================== Summary ====================
Name: ST80-bf.4
Author: bf
Time: 8 May 2010, 12:00:37 pm
UUID: f338e428-3bbf-4118-9739-6cd4d6917b42
Ancestors: ST80-bf.3
- Fix for SQ-489 (Alt-. does not always work): LowSpaceAndInterruptHandler-4Etoys-M1041-dtl
=============== Diff against ST80-bf.3 ===============
Item was changed:
----- Method: ControlManager>>interruptName:preemptedProcess: (in category 'scheduling') -----
interruptName: labelString preemptedProcess: theInterruptedProcess
"Create a Notifier on the active scheduling process with the given label. Make the Notifier the active controller."
+ | newActiveController preemptedProcess |
- | suspendingList newActiveController preemptedProcess |
+ preemptedProcess := theInterruptedProcess ifNil: [Processor preemptedProcess].
+ preemptedProcess suspend.
- preemptedProcess _ theInterruptedProcess ifNil: [Processor preemptedProcess].
- preemptedProcess == activeControllerProcess
- ifFalse: [(suspendingList _ preemptedProcess suspendingList) == nil
- ifTrue: [preemptedProcess suspend]
- ifFalse: [suspendingList remove: preemptedProcess.
- preemptedProcess offList]].
+ "There is something wrong here. We suspend *two* processes, the interrupted
+ process and the activeControllerProcess (unless they are the same). How can
+ that possibly be right? However, it is what the code did before I added the comment
+ (it was merely hidden underneith another pile of code). Someone with more
+ understanding about MVC fix this please."
- (suspendingList _ activeControllerProcess suspendingList) == nil
- ifTrue: [activeControllerProcess == Processor activeProcess
- ifTrue: [activeControllerProcess suspend]]
- ifFalse: [suspendingList remove: activeControllerProcess ifAbsent:[].
- activeControllerProcess offList].
+ preemptedProcess == activeControllerProcess
+ ifFalse:[activeControllerProcess suspend].
+
activeController ~~ nil ifTrue: [
"Carefully de-emphasis the current window."
activeController view topView deEmphasizeForDebugger].
+ newActiveController :=
- newActiveController _
(Debugger
openInterrupt: labelString
onProcess: preemptedProcess) controller.
newActiveController centerCursorInView.
self activeController: newActiveController.
!
More information about the etoys-dev
mailing list