diff Framework/Loaders/LoaderStateMachine.cpp @ 977:262a0244e9b2 toa2019090201

Added missing Unregister for objects that register by the broker + logs + guard in FetchContext
author Benjamin Golinvaux <bgo@osimis.io>
date Mon, 02 Sep 2019 17:29:26 +0200
parents e75fd08d6c75
children e713f1a99861 eb28dfe432f7
line wrap: on
line diff
--- a/Framework/Loaders/LoaderStateMachine.cpp	Sat Aug 31 13:50:11 2019 +0200
+++ b/Framework/Loaders/LoaderStateMachine.cpp	Mon Sep 02 17:29:26 2019 +0200
@@ -136,10 +136,9 @@
   template <typename T>
   void LoaderStateMachine::HandleSuccessMessage(const T& message)
   {
-    LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::HandleSuccessMessage()";
+    LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::HandleSuccessMessage(). Receiver fingerprint = " << GetFingerprint();
     if (activeCommands_ <= 0) {
       LOG(ERROR) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::HandleSuccessMessage : activeCommands_ should be > 0 but is: " << activeCommands_;
-      LOG(ERROR) << "LoaderStateMachine(" << std::hex << this << std::dec << ") fingerprint = " << GetFingerprint();
     }
     else {
       activeCommands_--;
@@ -162,6 +161,7 @@
                                          IObservable& oracleObservable) :
     IObserver(oracleObservable.GetBroker()),
     oracle_(oracle),
+    oracleObservable_(oracleObservable),
     active_(false),
     simultaneousDownloads_(4),
     activeCommands_(0)
@@ -187,6 +187,7 @@
 
   LoaderStateMachine::~LoaderStateMachine()
   {
+    oracleObservable_.Unregister(this);
     LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::~LoaderStateMachine()";
     Clear();
   }