标签: lua-lanes

LuaLanes和LuaSockets

我正在研究一个小的Lua应用程序(在Lua for Windows下,如果这很重要),它使用套接字与外界进行通信.(LuaSocket)

而我正试图并行提出几个请求.所以我认为LuaLanes是要走的路.(当然,如果有更好的解决方案,我会接受替代方案,但我不愿意为此处理协程.)

像这样的东西:

server = assert (socket.bind ('*', 1234))
client = server : accept ()
-- set id to some unique value
allClients [id] = client
theLane = lanes.gen ("", laneTest) ( id )
print (theLane [1])
Run Code Online (Sandbox Code Playgroud)

laneTest函数的定义如下:

function laneTest (id)
    local client = allClients [id]
    print ('peer: ', client:getpeername())
end
Run Code Online (Sandbox Code Playgroud)

我的问题是在laneTest函数内部,当作为一个通道运行时,我收到这个可爱的错误信息:

尝试索引本地"客户端"(userdata值)

(从线client:getpeername())

所以..我不确定这里发生了什么?车道与插座不兼容,还是我做错了什么?

我想这可能是因为车道附带的版本和Lua的Windows是古(luaforwindows),不与插座的工作,但最新的版本可能?(车道2.0.4对比最近的3.xx)

我真的不知道怎么去更新我所拥有的Lanes版本,否则我现在就试过了,所以.我很感激任何建议,如果那是我可以前进的地方,或者有更明显的事情,我做错了.

编辑:我继续通过luarocks安装车道,并使用安装为摇滚的车道3.1.6-1也有同样的问题.

编辑2:试过这个(但仍然失败):

require ('socket')
require ('lanes')
local allClients = {}

function …
Run Code Online (Sandbox Code Playgroud)

lua luasocket lua-lanes

6
推荐指数
2
解决办法
3200
查看次数

lua-lanes in luajit2

有没有办法在luajit 2中使用通道库?

据我所知,luajit有一个限制,即不支持lua_dump() c-api函数.是否有其他方法来获取给定函数的代码块?

lua luajit lua-lanes

3
推荐指数
1
解决办法
1798
查看次数

Lua Lanes和多核支持:可以做到吗?

Lua Lanes表示,它通过多线程实现多核支持.这不正确吗?您是否需要使用多个进程来利用多个核心?Lua Lanes这样做吗?

也许我误解了他们在说什么.这是他们网站的段落:

Lua Lanes是一个Lua扩展库,可以并行运行多个Lua状态.它旨在用于优化多核CPU的性能,并研究使Lua程序自然并行开始的方法.

谢谢

lua multithreading multicore lua-lanes

2
推荐指数
1
解决办法
1887
查看次数

标签 统计

lua ×3

lua-lanes ×3

luajit ×1

luasocket ×1

multicore ×1

multithreading ×1