From 6ff0ce755f74d9ffbdcd22c1d82facab7f37ccbb Mon Sep 17 00:00:00 2001
From: Jan David Mol <mol@astron.nl>
Date: Tue, 26 Nov 2013 15:27:05 +0000
Subject: [PATCH] Task #4818: Catch feedback/augment exceptions in the
 OutputThread, to make GPUProcIO code a bit cleaner

---
 RTCP/Cobalt/OutputProc/src/GPUProcIO.cc    | 25 ++++------------------
 RTCP/Cobalt/OutputProc/src/OutputThread.cc | 17 +++++++++++----
 2 files changed, 17 insertions(+), 25 deletions(-)

diff --git a/RTCP/Cobalt/OutputProc/src/GPUProcIO.cc b/RTCP/Cobalt/OutputProc/src/GPUProcIO.cc
index f6fb719910a..74c2903744a 100644
--- a/RTCP/Cobalt/OutputProc/src/GPUProcIO.cc
+++ b/RTCP/Cobalt/OutputProc/src/GPUProcIO.cc
@@ -175,18 +175,9 @@ void process(Stream &controlStream, size_t myRank)
     LOG_INFO_STR("Processing final meta data");
 
     for (size_t i = 0; i < subbandWriters.size(); ++i)
-      try {
-        subbandWriters[i]->augment(finalMetaData);
-      } catch (Exception &ex) {
-        LOG_ERROR_STR("Could not add final meta data: " << ex);
-      }
-
+      subbandWriters[i]->augment(finalMetaData);
     for (size_t i = 0; i < tabWriters.size(); ++i)
-      try {
-        tabWriters[i]->augment(finalMetaData);
-      } catch (Exception &ex) {
-        LOG_ERROR_STR("Could not add final meta data: " << ex);
-      }
+      tabWriters[i]->augment(finalMetaData);
 
     /*
      * LTA FEEDBACK
@@ -196,17 +187,9 @@ void process(Stream &controlStream, size_t myRank)
     Parset feedbackLTA;
 
     for (size_t i = 0; i < subbandWriters.size(); ++i)
-      try {
-        feedbackLTA.adoptCollection(subbandWriters[i]->feedbackLTA());
-      } catch (Exception &ex) {
-        LOG_ERROR_STR("Could not obtain feedback for LTA: " << ex);
-      }
+      feedbackLTA.adoptCollection(subbandWriters[i]->feedbackLTA());
     for (size_t i = 0; i < tabWriters.size(); ++i)
-      try {
-        feedbackLTA.adoptCollection(tabWriters[i]->feedbackLTA());
-      } catch (Exception &ex) {
-        LOG_ERROR_STR("Could not obtain feedback for LTA: " << ex);
-      }
+      feedbackLTA.adoptCollection(tabWriters[i]->feedbackLTA());
 
     LOG_INFO_STR("Forwarding LTA feedback");
     feedbackLTA.write(&controlStream);
diff --git a/RTCP/Cobalt/OutputProc/src/OutputThread.cc b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
index 2adc4ed33cb..d35a35e0643 100644
--- a/RTCP/Cobalt/OutputProc/src/OutputThread.cc
+++ b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
@@ -171,17 +171,26 @@ namespace LOFAR
 
     template<typename T> void OutputThread<T>::augment( const FinalMetaData &finalMetaData )
     {
-      // augment the data product
-      ASSERT(itsWriter.get());
+      try {
+        // augment the data product
+        ASSERT(itsWriter.get());
 
-      itsWriter->augment(finalMetaData);
+        itsWriter->augment(finalMetaData);
+      } catch (Exception &ex) {
+        LOG_ERROR_STR(itsLogPrefix << "Could not add final meta data: " << ex);
+      }
     }
 
 
     template<typename T> ParameterSet OutputThread<T>::feedbackLTA() const
     {
       ParameterSet result;
-      result.adoptCollection(itsWriter->configuration(), itsLTAfeedbackPrefix);
+
+      try {
+        result.adoptCollection(itsWriter->configuration(), itsLTAfeedbackPrefix);
+      } catch (Exception &ex) {
+        LOG_ERROR_STR(itsLogPrefix << "Could not obtain feedback for LTA: " << ex);
+      }
 
       return result;
     }
-- 
GitLab