diff Framework/Messages/IObservable.cpp @ 1075:81b29bc7c3d4 broker

cont
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 17 Oct 2019 14:39:51 +0200
parents 05b2e71ed145
children 17660df24c36
line wrap: on
line diff
--- a/Framework/Messages/IObservable.cpp	Thu Oct 17 13:48:52 2019 +0200
+++ b/Framework/Messages/IObservable.cpp	Thu Oct 17 14:39:51 2019 +0200
@@ -94,11 +94,16 @@
   }
 
   
-  void IObservable::EmitMessage(const IObserver& observer,
+  void IObservable::EmitMessage(boost::weak_ptr<IObserver>& observer,
                                 const IMessage& message)
   {
     LOG(TRACE) << "IObservable::EmitMessage observer = "
       << std::hex << &observer << std::dec;
-    EmitMessageInternal(&observer, message);
+
+    boost::shared_ptr<IObserver> lock(observer.lock());
+    if (lock)
+    {
+      EmitMessageInternal(lock.get(), message);
+    }
   }
 }