From 503a7851c50a83d1249528787929afeea3b81c93 Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Fri, 5 Mar 2010 11:01:32 +0100 Subject: [PATCH] luasd: Force a garbage collect at the end of Run(). Generally the core won't call Close() until the end of vlc's life. Hence it's our last chance to gc collect before the end of vlc's life. This gets important because some sd (freebox...) will open a vlc.stream which (and that's an other issue) will eat 12MB at creation for a cache that will never be completely filed. It also mean that if you vlc.stream N small files, we may consume N * 12MB until finally lua decides to garabge collect. And because we don't teach lua that vlc.stream takes 12MB this is not likely to happen. --- modules/misc/lua/services_discovery.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/misc/lua/services_discovery.c b/modules/misc/lua/services_discovery.c index 0b33f93eee..6dcbc4af14 100644 --- a/modules/misc/lua/services_discovery.c +++ b/modules/misc/lua/services_discovery.c @@ -172,5 +172,10 @@ static void* Run( void *data ) return NULL; } msg_Dbg( p_sd, "LuaSD script loaded: %s", p_sys->psz_filename ); + + /* Force garbage collection, because the core will keep the SD + * open, but lua will never gc until lua_close(). */ + lua_gc( L, LUA_GCCOLLECT, 0 ); + return NULL; } -- 2.39.2