On 8/9/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Hello, > I'd like to use wxLua in a multi-threading application, several threads > should host their own Lua instance. > The Lua instances should run independent from the others, not sharing > anything. > So I create a wxLuaState object for every thread and use RunFile to execute > the script.
No problems, except that any GUI functions MUST be made from the main thread. This is a limitation of wxWidgets due to the underlying gui system which is true for pure C++ code as well.. > But: I also want to use own functions (published through RegisterFunction) > and I can't manage to get them independent. > I would have to declare them in a global scope (or as static member > functions), both would lead to a common function > implementation which is called from all threads. But I want to have them > separate, to avoid any interference between the Lua threads. > > Can anybody give me a hint how to do this? I think you're wondering how to have the underlying C function independent for each thread since each wxLuaState::RegisterFunction(...) call for a given lua state pushes the function independently into the lua_State already. Simple case: Just have multiple C functions if you'll only have a small known number of them. More complicated: I am not very well versed in C threading, but I believe that you will have to have mutexes (and/or conditions?) for each wxLuaState you create (maybe a wxList mapping between the lua_State of the wxLuaState and it's mutexes, keyed on the memory location of the lua_State?), then look up from within the C function which lua_State is "active" and do the mutex thing in there. In other words lua doesn't know about the threading and the C functions handle it all internally. I hope this makes some sort of sense, John Labenski ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Wxlua-users mailing list Wxlua-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wxlua-users