diff Framework/Oracle/WebAssemblyOracle.cpp @ 1468:323bf6040f5d

fix for boost::program_options
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 12 Jun 2020 16:53:42 +0200
parents 30deba7bc8e2
children 121d01aa328e
line wrap: on
line diff
--- a/Framework/Oracle/WebAssemblyOracle.cpp	Fri Jun 12 13:27:41 2020 +0200
+++ b/Framework/Oracle/WebAssemblyOracle.cpp	Fri Jun 12 16:53:42 2020 +0200
@@ -105,8 +105,12 @@
       command_(command),
       expectedContentType_(expectedContentType)
     {
-      LOG(TRACE) << "WebAssemblyOracle::FetchContext::FetchContext() | "
-                 << "receiver address = " << std::hex << &receiver;
+      if (Orthanc::Logging::IsTraceLevelEnabled())
+      {
+        // Calling "receiver.lock()" is expensive, hence the quick check if TRACE is enabled
+        LOG(TRACE) << "WebAssemblyOracle::FetchContext::FetchContext() | "
+                   << "receiver address = " << std::hex << receiver.lock().get();
+      }
 
       if (command == NULL)
       {
@@ -131,8 +135,13 @@
 
     void EmitMessage(const IMessage& message)
     {
-      LOG(TRACE) << "WebAssemblyOracle::FetchContext::EmitMessage receiver_ = "
-        << std::hex << &receiver_ << std::dec;
+      if (Orthanc::Logging::IsTraceLevelEnabled())
+      {
+        // Calling "receiver_.lock()" is expensive, hence the quick check if TRACE is enabled
+        LOG(TRACE) << "WebAssemblyOracle::FetchContext::EmitMessage receiver_ = "
+                   << std::hex << receiver_.lock().get() << std::dec;
+      }
+      
       oracle_.EmitMessage(receiver_, message);
     }
 
@@ -731,7 +740,7 @@
                                    IOracleCommand* command)
   {
     LOG(TRACE) << "WebAssemblyOracle::Schedule : receiver = "
-               << std::hex << &receiver;
+               << std::hex << receiver.get();
     
     std::unique_ptr<IOracleCommand> protection(command);