[squeak-dev] The Inbox: KernelTests-jar.419.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Dec 22 08:46:51 UTC 2021


A new version of KernelTests was added to project The Inbox:
http://source.squeak.org/inbox/KernelTests-jar.419.mcz

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

Name: KernelTests-jar.419
Author: jar
Time: 22 December 2021, 9:46:49.513682 am
UUID: bdc99b3d-0509-ec4c-9d24-4a20c6605fcc
Ancestors: KernelTests-ct.415

add tests documenting a bug in #releaseCriticalSection:
A solution has been proposed in 
http://lists.squeakfoundation.org/pipermail/squeak-dev/2021-December/217744.html

=============== Diff against KernelTests-ct.415 ===============

Item was added:
+ ----- Method: MutexTest>>testMutexInCriticalEnsureArgument (in category 'tests') -----
+ testMutexInCriticalEnsureArgument
+ 	"Terminating a terminator process should unwind both the terminator and its terminatee process"
+ 	
+ 	| terminatee mutex |
+ 	mutex := Mutex new.
+ 	terminatee := [mutex critical: []] newProcess.
+ 	self assert: terminatee isSuspended.
+ 	terminatee runUntil: [:ctx | ctx selectorToSendOrSelf = #primitiveExitCriticalSection].
+ 	self assert: terminatee isSuspended.
+ 	terminatee terminate.
+ 	self assert: terminatee isTerminated. 
+ 	self deny: mutex isOwned!

Item was added:
+ ----- Method: SemaphoreTest>>testSemaInCriticalEnsureArgument (in category 'tests') -----
+ testSemaInCriticalEnsureArgument
+ 	"Terminating a terminator process should unwind both the terminator and its terminatee process"
+ 	
+ 	| terminatee sema |
+ 	sema := Semaphore forMutualExclusion.
+ 	terminatee := [sema critical: []] newProcess.
+ 	self assert: terminatee isSuspended.
+ 	terminatee runUntil: [:ctx | ctx selectorToSendOrSelf = #signal].
+ 	self assert: terminatee isSuspended.
+ 	terminatee terminate.
+ 	self assert: terminatee isTerminated. 
+ 	self assert: sema excessSignals = 1 !



More information about the Squeak-dev mailing list