diff OrthancServer/main.cpp @ 996:cf52f3bcb2b3 lua-scripting

clarification of Lua classes wrt multithreading
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 03 Jul 2014 16:27:16 +0200
parents 83489fddd8c5
children 84b6d7bca6db
line wrap: on
line diff
--- a/OrthancServer/main.cpp	Thu Jul 03 15:58:53 2014 +0200
+++ b/OrthancServer/main.cpp	Thu Jul 03 16:27:16 2014 +0200
@@ -186,10 +186,12 @@
   {
     static const char* HTTP_FILTER = "IncomingHttpRequestFilter";
 
+    ServerContext::LuaContextLocker locker(context_);
+
     // Test if the instance must be filtered out
-    if (context_.GetLuaContext().IsExistingFunction(HTTP_FILTER))
+    if (locker.GetLua().IsExistingFunction(HTTP_FILTER))
     {
-      LuaFunctionCall call(context_.GetLuaContext(), HTTP_FILTER);
+      LuaFunctionCall call(locker.GetLua(), HTTP_FILTER);
 
       switch (method)
       {
@@ -371,7 +373,9 @@
       LOG(WARNING) << "Installing the Lua scripts from: " << path;
       std::string script;
       Toolbox::ReadFile(script, path);
-      context.GetLuaContext().Execute(script);
+
+      ServerContext::LuaContextLocker locker(context);
+      locker.GetLua().Execute(script);
     }