[Pkg] The Trunk: Kernel-dtl.517.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Nov 15 17:50:59 UTC 2010


David T. Lewis uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-dtl.517.mcz

==================== Summary ====================

Name: Kernel-dtl.517
Author: dtl
Time: 15 November 2010, 12:49:28.804 pm
UUID: 2c83e064-fa7d-4fc0-8e81-140b88e48a49
Ancestors: Kernel-ul.516

Revert last change to Semaphore>>critical:ifLocked: using latest version from Cuis, which adds a method comment to explain the reason for use of #== rather than #=

=============== Diff against Kernel-ul.516 ===============

Item was changed:
  ----- Method: Semaphore>>critical:ifLocked: (in category 'mutual exclusion') -----
  critical: mutuallyExcludedBlock ifLocked: alternativeBlock
  	"Evaluate mutuallyExcludedBlock only if the receiver is not currently in 
  	the process of running the critical: message. If the receiver is, evaluate 
  	mutuallyExcludedBlock after the other critical: message is finished."
  	
+ 	"Note: The following is tricky and depends on the fact that the VM will not switch between processes while executing byte codes (process switches happen only in real sends). The following test is written carefully so that it will result in bytecodes only.
+ 	Do not change the following #== for #=, as #== is not a real message send, just a bytecode."
+ 	excessSignals == 0 ifTrue: [
- 	"Note: The following is tricky and depends on the fact that the VM will not switch between processes while executing byte codes (process switches happen only in real sends). The following test is written carefully so that it will result in bytecodes only."
- 	excessSignals = 0 ifTrue:[
  		"If we come here, then the semaphore was locked when the test executed. 
  		Evaluate the alternative block and answer its result."
  		^alternativeBlock value 
  	].
  	^self critical: mutuallyExcludedBlock!



More information about the Packages mailing list