comparison OrthancServer/LuaScripting.cpp @ 1456:68827c07e683

fix recursive calls with Lua
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 02 Jul 2015 15:44:24 +0200
parents a68545767975
children 905842836ad4
comparison
equal deleted inserted replaced
1455:a68545767975 1456:68827c07e683
388 388
389 void LuaScripting::SignalStoredInstance(const std::string& publicId, 389 void LuaScripting::SignalStoredInstance(const std::string& publicId,
390 DicomInstanceToStore& instance, 390 DicomInstanceToStore& instance,
391 const Json::Value& simplifiedTags) 391 const Json::Value& simplifiedTags)
392 { 392 {
393 boost::mutex::scoped_lock lock(mutex_); 393 boost::recursive_mutex::scoped_lock lock(mutex_);
394 394
395 Json::Value metadata = Json::objectValue; 395 Json::Value metadata = Json::objectValue;
396 396
397 for (ServerIndex::MetadataMap::const_iterator 397 for (ServerIndex::MetadataMap::const_iterator
398 it = instance.GetMetadata().begin(); 398 it = instance.GetMetadata().begin();
435 435
436 Json::Value tags, metadata; 436 Json::Value tags, metadata;
437 if (context_.GetIndex().LookupResource(tags, change.GetPublicId(), change.GetResourceType()) && 437 if (context_.GetIndex().LookupResource(tags, change.GetPublicId(), change.GetResourceType()) &&
438 context_.GetIndex().GetMetadata(metadata, change.GetPublicId())) 438 context_.GetIndex().GetMetadata(metadata, change.GetPublicId()))
439 { 439 {
440 boost::mutex::scoped_lock lock(mutex_); 440 boost::recursive_mutex::scoped_lock lock(mutex_);
441 441
442 if (lua_.IsExistingFunction(name)) 442 if (lua_.IsExistingFunction(name))
443 { 443 {
444 InitializeJob(); 444 InitializeJob();
445 445
470 bool LuaScripting::FilterIncomingInstance(const Json::Value& simplified, 470 bool LuaScripting::FilterIncomingInstance(const Json::Value& simplified,
471 const std::string& remoteAet) 471 const std::string& remoteAet)
472 { 472 {
473 static const char* NAME = "ReceivedInstanceFilter"; 473 static const char* NAME = "ReceivedInstanceFilter";
474 474
475 boost::mutex::scoped_lock lock(mutex_); 475 boost::recursive_mutex::scoped_lock lock(mutex_);
476 476
477 if (lua_.IsExistingFunction(NAME)) 477 if (lua_.IsExistingFunction(NAME))
478 { 478 {
479 LuaFunctionCall call(lua_, NAME); 479 LuaFunctionCall call(lua_, NAME);
480 call.PushJson(simplified); 480 call.PushJson(simplified);