aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Germain <benoit.germain@ubisoft.com>2024-04-11 15:56:04 +0200
committerBenoit Germain <benoit.germain@ubisoft.com>2024-04-11 15:56:04 +0200
commit00970610dc8fbd00a11d3b69e4702933a592ce9f (patch)
treec746e91de27fe7ce036242e4667074b4597b77dd
parent21e881fd6c085e615c438ceb6eb438712f5c5075 (diff)
parentadaa36dbec1ce9aaafd61873b9d3d898a8c240cf (diff)
downloadlanes-00970610dc8fbd00a11d3b69e4702933a592ce9f.tar.gz
lanes-00970610dc8fbd00a11d3b69e4702933a592ce9f.tar.bz2
lanes-00970610dc8fbd00a11d3b69e4702933a592ce9f.zip
Merge branch 'C-Implementation'
Since almost everything in C-implementation comes from manual cherry-picking stuff in master, the merge essentially consist in a pure git tree operation to reconnect stuff properly.
Diffstat (limited to '')
-rw-r--r--Makefile12
-rw-r--r--src/tools.cpp2
-rw-r--r--tests/errhangtest.lua15
3 files changed, 19 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index 0750401..32f39ba 100644
--- a/Makefile
+++ b/Makefile
@@ -81,8 +81,8 @@ test:
81 $(MAKE) fibonacci 81 $(MAKE) fibonacci
82 $(MAKE) fifo 82 $(MAKE) fifo
83 $(MAKE) func_is_string 83 $(MAKE) func_is_string
84 $(MAKE) irayo_recursive
85 $(MAKE) irayo_closure 84 $(MAKE) irayo_closure
85 $(MAKE) irayo_recursive
86 $(MAKE) keeper 86 $(MAKE) keeper
87 $(MAKE) linda_perf 87 $(MAKE) linda_perf
88 $(MAKE) objects 88 $(MAKE) objects
@@ -104,8 +104,8 @@ cancel: tests/cancel.lua $(_TARGET_SO)
104REP_ARGS=-llanes -e "print'say aaa'; for i=1,10 do print(i) end" 104REP_ARGS=-llanes -e "print'say aaa'; for i=1,10 do print(i) end"
105repetitive: $(_TARGET_SO) 105repetitive: $(_TARGET_SO)
106 for i in 1 2 3 4 5 6 7 8 9 10 a b c d e f g h i j k l m n o p q r s t u v w x y z; \ 106 for i in 1 2 3 4 5 6 7 8 9 10 a b c d e f g h i j k l m n o p q r s t u v w x y z; \
107 do $(_PREFIX) $(LUA) $(REP_ARGS); \ 107 do $(_PREFIX) $(LUA) $(REP_ARGS); \
108 done 108 done
109 109
110repetitive1: $(_TARGET_SO) 110repetitive1: $(_TARGET_SO)
111 $(_PREFIX) $(LUA) $(REP_ARGS) 111 $(_PREFIX) $(LUA) $(REP_ARGS)
@@ -236,9 +236,9 @@ else
236 -rm -rf $(MODULE)-$(VERSION) 236 -rm -rf $(MODULE)-$(VERSION)
237 mkdir $(MODULE)-$(VERSION) 237 mkdir $(MODULE)-$(VERSION)
238 tar c * --exclude=.svn --exclude=.DS_Store --exclude="_*" \ 238 tar c * --exclude=.svn --exclude=.DS_Store --exclude="_*" \
239 --exclude="*.tgz" --exclude="*.rockspec" \ 239 --exclude="*.tgz" --exclude="*.rockspec" \
240 --exclude=lanes.dev --exclude="$(MODULE)-*" --exclude=xcode \ 240 --exclude=lanes.dev --exclude="$(MODULE)-*" --exclude=xcode \
241 --exclude="*.obj" --exclude="*.dll" --exclude=timeit.dat \ 241 --exclude="*.obj" --exclude="*.dll" --exclude=timeit.dat \
242 | (cd $(MODULE)-$(VERSION) && tar x) 242 | (cd $(MODULE)-$(VERSION) && tar x)
243 tar czvf $(MODULE)-$(VERSION).tgz $(MODULE)-$(VERSION) 243 tar czvf $(MODULE)-$(VERSION).tgz $(MODULE)-$(VERSION)
244 rm -rf $(MODULE)-$(VERSION) 244 rm -rf $(MODULE)-$(VERSION)
diff --git a/src/tools.cpp b/src/tools.cpp
index 4a6f2a2..a0a3018 100644
--- a/src/tools.cpp
+++ b/src/tools.cpp
@@ -1446,7 +1446,7 @@ static void copy_cached_func(Universe* U, Dest L2, int L2_cache_i, Source L, int
1446 int key_i = val_i - 1; 1446 int key_i = val_i - 1;
1447 1447
1448 // Only basic key types are copied over; others ignored 1448 // Only basic key types are copied over; others ignored
1449 if (inter_copy_one(U, L2, 0 /*key*/, L, key_i, VT::KEY, mode_, upName_)) 1449 if (inter_copy_one(U, L2, L2_cache_i, L, key_i, VT::KEY, mode_, upName_))
1450 { 1450 {
1451 char* valPath = (char*) upName_; 1451 char* valPath = (char*) upName_;
1452 if( U->verboseErrors) 1452 if( U->verboseErrors)
diff --git a/tests/errhangtest.lua b/tests/errhangtest.lua
index 7286fa5..d26dcef 100644
--- a/tests/errhangtest.lua
+++ b/tests/errhangtest.lua
@@ -4,10 +4,19 @@ local linda = lanes.linda()
4 4
5local coro = coroutine.create(function() end) 5local coro = coroutine.create(function() end)
6 6
7local fun = function() print "fun" end
8local t_in = { [fun] = fun, fun = fun }
9
10-- send a string
11print( pcall(linda.send,linda, 'test', "oh boy"))
12-- send a table that contains a function
13print( pcall(linda.send,linda, 'test', t_in))
7-- we are not allowed to send coroutines through a lanes 14-- we are not allowed to send coroutines through a lanes
8-- however, this should raise an error, not hang the program... 15-- however, this should raise an error, not hang the program...
9print( pcall(linda.send,linda, 'test', "oh boy"))
10print( pcall(linda.send,linda, 'test', coro)) 16print( pcall(linda.send,linda, 'test', coro))
11k,res = linda:receive('test') 17k,str = linda:receive('test') -- read the contents successfully sent
12print( res) 18print( str) -- "oh boy"
19k,t_out = linda:receive('test') -- read the contents successfully sent
20t_out.fun() -- "fun"
13-- linda:send( 'test', coro) 21-- linda:send( 'test', coro)
22print "SUCCESS" \ No newline at end of file