TODO: - Testing Lane killing (not cancellation, but actual killing) - Like luaproc: Lanes to have M:N relationship to kernel threads (= give a maximum number of kernel threads to run, then juggle those to run a Lane, until the lane suspends, blocks, or exits) (default could be twice the kernel threads of the CPU count, or something.) - Like luaproc: "only the basic standard library and our own library are automatically loaded into each new Lua process. The re- maining standard libraries (io, os, table, string, math, and debug) are pre-registered and can be loaded with a standard call to Lua’s require function. " - Lanes so/dll to have a second interface; C code sending data to a linda of given void* --- Documentation Errors in docs/index.html --- lanes.register() — full userdata accepted, wrong Doc says: Raises an error if the registered module is not a function, table, or full userdata. Code (lanes.cpp): Only checks for TABLE or FUNCTION: luaL_argcheck(L_, (_mod_type == LuaType::TABLE) || (_mod_type == LuaType::FUNCTION), 2, "unexpected module type"); Full userdata is rejected, not accepted. However, PopulateFuncLookupTable handles the USERDATA case, so this has to be investigated more.