local lanes = require "lanes".configure()
local linda = lanes.linda()
local thread = lanes.gen({globals = _G}, function()
print("Starting thread...")
while true do
local command = linda:receive("cmd")
if command=="quit" then
break
else
broadcast(-1,"Hello from lanes.")
end
end
end)
local threads = {}
local NCORES = 2
for i=1,NCORES do threads[i] = thread() end
linda:send("cmd", "test")
for i=1,NCORES do linda:send("cmd", "quit") end
for i=1,NCORES do threads[i]:join() end
Lua Lanes を適切に実行するためのゲーム サーバーでのテストとして、新しいスレッドでメイン状態からグローバル関数を使用しようとしています。残念ながら、この特定のコードはAssert Failure in tools.c line 1216
. メインスレッド、そして最終的にはゲームサーバーをロックすることなく忙しい仕事をすることができるように、これを設定しようとしています. おそらくこれを行うより良い方法はありますか?luaL_newthread(state)
または、サーバーでスクリプトを実行できますか?これは現在私の開発を停止しているため、正しい方向にアドバイスしてください。前もって感謝します。