lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi thiago,

playing around with luajava showed some hard problems with the api.
It seems to be not threadsafe, so that the servers crash when running more than one thread.
We try to get rid of these problems, but we noticed that the C - Sources  (The native Interface) contained in the zip file from your home page seem to be not up to date.
Could you please mail me your code?
It is very important, as there s a decision for or against lua tomorrow.
Thanks in advance,



Thomas Praxl

HESSISCHER RUNDFUNK
Multimedia; Forschung und Strategie
(hr-online)
Bertramstraße 8
60320 Frankfurt am Main
-----------------------------------------------------
E-Mail:   tpraxl@hr-online.de
Telefon:  (069) 155 - 3852


>>> TPRAXL@hr-online.de 03/24 1:20  >>>
Well..

I searched the java-source of luajava for a hint and noticed that it lacks a method to close the luastate explicitely.
The only method that closes the luastate is "finalize".
Well.. as "finalize" is not guaranteed to be called when the java-garbage-collector runs, the memory is not guaranteed to be freed.
So I added a public method "close" to luaState.
Greetings and thanks for Lua and luajava,



Thomas Praxl

HESSISCHER RUNDFUNK
Multimedia; Forschung und Strategie
(hr-online)
Bertramstraße 8
60320 Frankfurt am Main
-----------------------------------------------------
E-Mail:   tpraxl@hr-online.de 
Telefon:  (069) 155 - 3852


>>> TPRAXL@hr-online.de 03/24 11:38  >>>
Hello,

I m new to this list. 
A few years ago I worked with Lua. For some time now I unsubscribed from the list, as I didn t need Lua anymore.

I m developing a converter for a tag-language related to BBCode and need to plug in scripts that define the behaviour of a tag.
For that reason I remembered Lua and embedded LuaJava from Thiago.

Now I noticed some kind of memory leak in my application on my local tomcat.
I guess that has something to do with not closing a luaState created with 

LuaStateFactory.newLuaState().

I searched the API-Doc for a possibility to call lua_close from Java but the only thing I found was 

LuaStateFactory.remove(int idx)

The API-Doc says "when a new state is created, it is pushed into a state list and it s index is returned". Well.. I can t find a possibility to get the index of a newly created state.

My code looks similar to this:

LuaState l = LuaStateFactory.newLuaState();
l.pushJavaFunction(new ObjectCreator(l));
l.pushJavaFunction(new URLInclude(l));
l.doFile(pathToScript+"/Tag_"+tagName.toLowerCase()+fileExt);
l.getGlobal("replace");
l.call(0,1);
String result = l.toString(-1);
LuaStateFactory.removeLuaState(0);

But calling this code for 1000 times leads to a memory leak between 20 and 40 MB.

Can anybody help?

Thanks in advance,






Thomas Praxl

HESSISCHER RUNDFUNK
Multimedia; Forschung und Strategie
(hr-online)
Bertramstraße 8
60320 Frankfurt am Main
-----------------------------------------------------
E-Mail:   tpraxl@hr-online.de 
Telefon:  (069) 155 - 3852