lua plugin: Don't destroy interpreter early
[collectd.git] / src / lua.c
index 8dc78d0..b5d3ce5 100644 (file)
--- a/src/lua.c
+++ b/src/lua.c
@@ -261,6 +261,7 @@ static int lua_cb_dispatch_values(lua_State *L) /* {{{ */
 static void lua_cb_free(void *data) {
   clua_callback_data_t *cb = data;
   free(cb->lua_function_name);
+  pthread_mutex_destroy(&cb->lock);
   free(cb);
 }
 
@@ -470,9 +471,6 @@ static int lua_script_load(const char *script_path) /* {{{ */
     else
       ERROR("Lua plugin: Executing script \"%s\" failed:\n%s",
             script_path, errmsg);
-
-    lua_script_free(script);
-    return -1;
   }
 
   /* Append this script to the global list of scripts. */
@@ -486,6 +484,9 @@ static int lua_script_load(const char *script_path) /* {{{ */
     scripts = script;
   }
 
+  if (status != 0)
+    return -1;
+
   return 0;
 } /* }}} int lua_script_load */