Mantis - Squeak
Viewing Issue Advanced Details
7060 Kernel major always 05-20-08 21:37 04-18-10 22:04
GazzaGuru  
laza  
normal  
closed  
fixed  
none    
none trunk  
0007060: Delay>>timeoutSemaphore:afterMSecs: never signals semaphore
The method mentioned in the summary seems broken.
Test code described below.
Fix included (MIT license, of course...).
|s|
s := Semaphore new.
Delay timeoutSemaphore: s afterMSecs: 2000.
s wait
related to 0006834closed laza Delay class>>timeoutSemaphore:afterMSecs: doesn't. 
related to 0007035closed edgardec Fix system version for 3.10.1 
 DelaySemaphoreFix.1.cs [^] (922 bytes) 05-20-08 21:37

Notes
(0012127)
GazzaGuru   
05-20-08 21:39   
Class side method, in 3.9 and 3.10, at least.
(0012129)
KenCausey   
05-20-08 22:34   
The root of the problem is that the new version (as of 3.9) of this method does not use the passed semaphore. There were no callers in 3.9 but are in 3.10.
(0012130)
KenCausey   
05-20-08 22:37   
The implementation in 3.8 looks much like Gary's submission except there is also a check on the time specified to insure it is non-negative. Perhaps we should simply revert to the 3.8 implementation?
(0012146)
KenCausey   
05-23-08 20:30   
While this should be harvested, I'm not going to harvest it for 3.10.1 because it addresses an issue that existed in 3.9 and we need 3.10.1 to focus on new issues in 3.10.