@@ -312,8 +312,8 @@ def test_core_02
312
312
313
313
def test_core_03_notify
314
314
notify1 = @ts . notify ( nil , [ :req , Integer ] )
315
- notify2 = @ts . notify ( nil , [ :ans , Integer ] , 5 )
316
- notify3 = @ts . notify ( nil , { "message" => String , "name" => String } , 5 )
315
+ notify2 = @ts . notify ( nil , [ :ans , Integer ] , 8 )
316
+ notify3 = @ts . notify ( nil , { "message" => String , "name" => String } , 8 )
317
317
318
318
@ts . write ( { "message" => "first" , "name" => "3" } , 3 )
319
319
@ts . write ( { "message" => "second" , "name" => "1" } , 1 )
@@ -342,19 +342,19 @@ def test_core_03_notify
342
342
result = nil
343
343
lv = 0
344
344
n = 0
345
- notify2 . each do |ev |
345
+ notify2 . each do |ev , tuple |
346
346
n += 1
347
- if ev [ 0 ] == 'write'
347
+ if ev == 'write'
348
348
lv = lv + 1
349
- elsif ev [ 0 ] == 'take'
349
+ elsif ev == 'take'
350
350
lv = lv - 1
351
- elsif ev [ 0 ] == 'close'
351
+ elsif ev == 'close'
352
352
result = [ lv , n ]
353
353
else
354
354
break
355
355
end
356
356
assert ( lv >= 0 )
357
- assert_equal ( [ :ans , 10 ] , ev [ 1 ] )
357
+ assert_equal ( [ :ans , 10 ] , tuple )
358
358
end
359
359
result
360
360
end
@@ -383,14 +383,16 @@ def test_core_03_notify
383
383
@ts . take ( { "message" => "first" , "name" => "3" } )
384
384
385
385
sleep ( 4 )
386
+ # notify2 must not expire until this @ts.take.
387
+ # sleep(4) might be short enough for the timeout of notify2 (8 secs)
386
388
tuple = @ts . take ( [ :ans , nil ] )
387
389
assert_equal ( 10 , tuple [ 1 ] )
388
390
assert_equal ( 10 , taker . value )
389
391
assert_equal ( [ ] , @ts . read_all ( [ nil , nil ] ) )
390
-
392
+
391
393
notify1 . cancel
392
- sleep ( 3 ) # notify2 expired
393
-
394
+ sleep ( 7 ) # notify2 expired (sleep(4)+sleep(7) > 8)
395
+
394
396
assert_equal ( [ 0 , 11 ] , listener1 . value )
395
397
assert_equal ( [ 0 , 3 ] , listener2 . value )
396
398
0 commit comments