[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