[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Lua in a threaded enviroment
- From: Daurnimator <quae@...>
- Date: Sun, 28 Aug 2016 20:17:38 +1000
On 28 August 2016 at 19:57, Marc Balmer <marc@msys.ch> wrote:
> Does someone on this list have experience with running Lua in a threaded environment?
>
> I am thinking about the following scenario:
>
> - A main thread creates a Lua state and uses it the usual way using the C API.
> - A secondary thread should call a function in said Lua state from time to time,
> asynchronously and not predictable when it will do so. Totally independent from
> the main thread.
>
> It's obvious that this will not work and that some sort of arbitration will be needed. As
> I understand, there is no locking at all in Lua, and not even a function to query if a
> Lua state is currently executing Lua code, i.e. if another thread is running the Lua
> interpreter.
>
> What's the best approach to this? I think I will have to add a locking mechanism
> and aquire the lock before calling any of the Lua C API functions. Are there better
> ways?
>
>
Yes.
Alternatively, you can define lua_lock and lua_unlock to use some sort
of mutex (when you compile lua)