11return require (' lib/tap' )(function (test )
22
33 test (" test pass async between threads" , function (p , p , expect , uv )
4- local before = os.time ()
54 local async
65 async = uv .new_async (expect (function (a ,b ,c )
76 p (' in async notify callback' )
@@ -11,22 +10,43 @@ return require('lib/tap')(function (test)
1110 assert (c == 250 )
1211 uv .close (async )
1312 end ))
14- local args = {500 , ' string' , nil , false , 5 , " helloworld" ,async }
15- local unpack = unpack or table.unpack
16- uv .new_thread (function (num ,s ,null ,bool ,five ,hw ,asy )
13+ uv .new_thread (function (asy )
1714 local uv = require ' luv'
18- assert (type (num ) == " number" )
19- assert (type (s ) == " string" )
20- assert (null == nil )
21- assert (bool == false )
22- assert (five == 5 )
23- assert (hw == ' helloworld' )
2415 assert (type (asy )== ' userdata' )
2516 assert (uv .async_send (asy ,' a' ,true ,250 )== 0 )
26- uv .sleep (1000 )
27- end , unpack (args )):join ()
28- local elapsed = (os.time () - before ) * 1000
29- assert (elapsed >= 1000 , " elapsed should be at least delay " )
17+ uv .run ()
18+ end , async ):join ()
19+ end )
20+
21+ test (" test pass back async between threads" , function (p , p , expect , uv )
22+ local async
23+ async = uv .new_async (expect (function (a )
24+ uv .close (async )
25+ p (' in async notify callback' )
26+ p (a )
27+ assert (type (a )== ' userdata' )
28+ local timer = uv .new_timer ()
29+ uv .timer_start (timer , 10 , 0 , expect (function ()
30+ uv .close (timer )
31+ p (" timeout" , timer )
32+ assert (uv .async_send (a ,' a' ,true ,250 )== 0 )
33+ end ))
34+ end ))
35+ local t = uv .new_thread (function (asy )
36+ local uv = require ' luv'
37+ assert (type (asy )== ' userdata' , ' bad aync type' )
38+ local as
39+ as = uv .new_async (function (a ,b ,c )
40+ uv .close (as )
41+ assert (a == ' a' , ' bad string' )
42+ assert (b == true , ' bad boolean' )
43+ assert (c == 250 , ' bad number' )
44+ end )
45+ assert (uv .async_send (asy ,as )== 0 )
46+ uv .run ()
47+ end , async )
48+ uv .run ()
49+ t :join ()
3050 end )
3151
3252end )
0 commit comments