Mercurial > hg > orthanc-stone
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); + } } }