diff options
Diffstat (limited to 'deep_test/deeptest.lua')
-rw-r--r-- | deep_test/deeptest.lua | 53 |
1 files changed, 35 insertions, 18 deletions
diff --git a/deep_test/deeptest.lua b/deep_test/deeptest.lua index 3b514dd..c0bbab4 100644 --- a/deep_test/deeptest.lua +++ b/deep_test/deeptest.lua | |||
@@ -1,22 +1,39 @@ | |||
1 | -- create a deep-aware full userdata while Lanes isn't loaded | 1 | local lanes = require("lanes").configure{ with_timers = false} |
2 | local dt = require "deep_test" | 2 | local l = lanes.linda "my linda" |
3 | local deep = dt.new_deep() | ||
4 | deep:set(666) | ||
5 | print( deep) | ||
6 | 3 | ||
7 | local clonable = dt.new_clonable() | 4 | -- we will transfer userdata created by this module, so we need to make Lanes aware of it |
5 | local dt = lanes.require "deep_test" | ||
8 | 6 | ||
9 | -- now load Lanes and see if that userdata is transferable | 7 | local test_deep = true |
10 | --[[ | 8 | local test_clonable = false |
11 | local lanes = require("lanes").configure() | 9 | |
12 | local l = lanes.linda "my linda" | 10 | local performTest = function( obj_) |
11 | obj_:set(666) | ||
12 | print( "immediate:", obj_) | ||
13 | |||
14 | l:set( "key", obj_) | ||
15 | local out = l:get( "key") | ||
16 | print( "out of linda:", out) | ||
17 | |||
18 | local g = lanes.gen( | ||
19 | "package" | ||
20 | , { | ||
21 | required = { "deep_test"} -- we will transfer userdata created by this module, so we need to make this lane aware of it | ||
22 | } | ||
23 | , function( obj_) | ||
24 | print( "in lane:", obj_) | ||
25 | return obj_ | ||
26 | end | ||
27 | ) | ||
28 | h = g( obj_) | ||
29 | local from_lane = h[1] | ||
30 | print( "from lane:", from_lane) | ||
31 | end | ||
13 | 32 | ||
14 | l:set( "key", deep) | 33 | if test_deep then |
15 | local deep_out = l:get( "key") | 34 | performTest( dt.new_deep()) |
16 | print( deep_out) | 35 | end |
17 | 36 | ||
18 | lanes.register() | 37 | if test_clonable then |
19 | l:set( "key", clonable) | 38 | performTest( dt.new_clonable()) |
20 | local clonable_out = l:get( "key") | 39 | end |
21 | print( clonable_out) | ||
22 | --]] \ No newline at end of file | ||