File tree Expand file tree Collapse file tree
ReadWriteLock-Tests.package
LocksTestCase.class/instance
PrimitiveLockTest.class/instance Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11helpers
22waitForkedProcesses
33
4- [CurrentExecutionEnvironment value forkedProcesses
5- allSatisfy: [ :each | each isTerminated ]] whileFalse: [
6- Processor yield ]
4+ [forkedProcesses allSatisfy: [ :each | each isTerminated ]]
5+ whileFalse: [ Processor yield ]
Original file line number Diff line number Diff line change 11tests
22testAcquireLockWhenItsAlreadyBusy
33
4- | lastLockAcquired |
4+ | lastLockAcquired syncSemaphore lockSemaphore |
55 lastLockAcquired := false .
6- self fork: [ lock acquire. 10 seconds wait. ].
6+ syncSemaphore := Semaphore new .
7+ lockSemaphore := Semaphore new .
8+ self fork: [ lock acquire. syncSemaphore signal . lockSemaphore wait. ].
9+ syncSemaphore wait.
710 self fork: [ lock acquire. lastLockAcquired := true ].
8- 10 milliSeconds wait.
11+ self passForkedProcesses.
12+ lockSemaphore signal .
913
1014 self deny: lastLockAcquired
1115
Original file line number Diff line number Diff line change 11tests
22testReleasingLock
33
4- | lastExecuted |
4+ | lastExecuted syncSemaphore lockSemaphore |
55 lastExecuted := false .
6- self fork: [ lock acquire. 10 seconds wait].
6+ syncSemaphore := Semaphore new .
7+ lockSemaphore := Semaphore new .
8+
9+ self fork: [ lock acquire. syncSemaphore signal . lockSemaphore wait].
710 self fork: [ lock acquire. lastExecuted := true ].
8- 10 milliSeconds wait.
11+ syncSemaphore wait.
12+ self passForkedProcesses.
913 lock release.
1014 self waitLastProcessFinished.
1115 self assert: lastExecuted
You can’t perform that action at this time.
0 commit comments