[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Threads HOWTO?
- From: Johann Hibschman <jhibschman@...>
- Date: Wed, 21 Jul 2004 23:57:36 -0400
On Jul 21, 2004, at 7:35 PM, Rici Lake wrote:
On 21-Jul-04, at 5:39 PM, Johann Hibschman wrote:
The giant interpreter lock does guarantee that the Lua internal
structures will remain coherent. But it does not at all guarantee that
individual threads will have a consistent view of the world, if they
share state with each other.
That's all right. Anything in the global state would be immutable.
where a is a global variable could generate unpredictable results. And
Lua does not provide any interpreter-visible synchronization
primitives which would let you prevent that. Of course, the problem
could be avoided by giving each thread its own globals environment,
but then one has to wonder what the point of using Lua threads was.
Hopefully immutable globals wouldn't require a global envt for each lua
thread.
Given all that, my inclination in threading Lua is not to; that is, to
keep a separate Lua instance for each thread and to do inter-thread
communication (if necessary) through a separate library.
Unfortunately, I'm trying to bolt-in a bit of scriptability to an
application that creates computation threads all over the place.
I'm looking for a way to execute some lua code safely from inside some
random thread, when I don't have the luxury of setting up a special
thread-specific state at thread-creation time. That's why I was
looking at the idea of creating lua threads each time a chunk of code
is executed.
Thanks for the comments,
-Johann