On 10.05.2008, at 06:13, Andrew Piskorski wrote: > On Fri, May 09, 2008 at 06:06:05PM +0200, Vasiljevic Zoran wrote: > >>> I saw somewhere that Lua can have global and per-thread state >>> and that you can provide your own locking primitives they use >>> to lock their own code, but I haven't dig deeper there... >> >> Damn again. This is a global lock that serializes everything. >> A no go :-( >> Same applies to others (Ruby, Phyton, Perl). > > Zoran, are you SURE? Because from what I've read about Lua, it does > NOT have any sort of single global lock limiting true parallelism to > one cpu/core at a time the way Python and Ruby do. Lua's default > behavior is coroutines cooperatively multitasking on just a single > cpu, but AFAIK the Lua implementation is not inherently limited to > that.
Coroutines are something similar, (purists outthere, note: _similar_) to Tcl event loop in terms that they work on a single processor. This is not real MP multithreading that we need in order to scale. From the programing perspective, they are indeed very interesting because they don't force me into the "event-loop" shoe. I have nothing against event-loop. It is just that it is really targeted to a GUI type of apps. I was greping to "lua_lock" calls arround the code and found mostly: something () { lua_lock(L); //... lua_unlock(L); } OK, this must _not_ mean they are absolutely serialized, but it really appears to me like that on the first glance. What I plan to do is go to Lua developers and ask couple of questions... > > > Your application clearly wants to use many thousands of stateful > lightweight processes. AFAIK Lua and especially Erlang both support > that out of the box. Do you ALSO need to run 2 or 8 or more of those > threads in parallel (at the exact same time) on a single multi-cpu > server? Recent versions of Erlang definitely support that. I'm not > sure whether or not Lua supports that out of the box, but it may be > feasible to make it work. Yep, Erlang is something that looks very good as well. I just stumbled across that yesterday. Clever, clever... still I have to see how they works internally and what are the gotchas of their message-passing. Cheers Zoran ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ naviserver-devel mailing list naviserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/naviserver-devel