From a82f0951a3813fb82886ea68cf9ee67016d08a99 Mon Sep 17 00:00:00 2001
From: Jan David Mol <mol@astron.nl>
Date: Wed, 11 Feb 2015 16:02:49 +0000
Subject: [PATCH] Task #7336: Prevent (one type of) crash when Cobalt is
 stopped during startup phase

---
 RTCP/Cobalt/GPUProc/src/Station/StationInput.cc | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/RTCP/Cobalt/GPUProc/src/Station/StationInput.cc b/RTCP/Cobalt/GPUProc/src/Station/StationInput.cc
index a459da0af62..3200cf3aa7d 100644
--- a/RTCP/Cobalt/GPUProc/src/Station/StationInput.cc
+++ b/RTCP/Cobalt/GPUProc/src/Station/StationInput.cc
@@ -555,12 +555,16 @@ namespace LOFAR {
           if (ps.settings.realTime) {
             #pragma omp parallel for num_threads(nrBoards)
             for(size_t board = 0; board < nrBoards; board++) {
-              OMPThreadSet::ScopedRun sr(packetReaderThreads);
-              OMPThread::ScopedName sn(str(format("%s rd %u") % ps.settings.antennaFields.at(stationIdx).name % board));
+              try {
+                OMPThreadSet::ScopedRun sr(packetReaderThreads);
+                OMPThread::ScopedName sn(str(format("%s rd %u") % ps.settings.antennaFields.at(stationIdx).name % board));
 
-              Thread::ScopedPriority sp(SCHED_FIFO, 10);
+                Thread::ScopedPriority sp(SCHED_FIFO, 10);
 
-              readRSPRealTime(board, mdLogger, mdKeyPrefix);
+                readRSPRealTime(board, mdLogger, mdKeyPrefix);
+              } catch(OMPThreadSet::CannotStartException &ex) {
+                LOG_INFO_STR( logPrefix << "Stopped");
+              }
             }
           } else {
             readRSPNonRealTime(mdLogger, mdKeyPrefix);
-- 
GitLab