--http://lua-users.org/wiki/CoroutinesTutorial

Is this description incorrect? It seems at odds with what you said
about Lua coroutines getting an OS thread (if one is available).

The description you quoted from lua-users.org is correct. The primary implementation of Lua is 100% portable ISO C, it therefore does _not_ use OS threads for coroutines. I think there may be extensions/modifications produced by other parties that provide that.

David Jones
Ravenbrook Limited

Sorry about the misinformation. I've been working on Lua programs with thousands of coroutines running and never noticed any artifacts or delays to indicate the execution wasn't truly parallel. What I don't understand is why it doesn't appear to block other coroutines on IO but since that's not relevant to creating threaded workers I'll leave that mystery for future research.

I thought Lua had an implementation of automated locking to use as a reference but since it doesn't I have nothing more to offer on the subject. Without knowing the internals of existing JS implementations I have no idea what would be involved to provide automated locking and whether it is impossible or just difficult.

Shannon






Reply via email to