From ae51ecc659fa5faf28e7e11b9a6a787c85b4e65e Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Wed, 22 Feb 2023 12:23:28 +0100 Subject: [PATCH] Add Device::ResumeTransports --- fairmq/Device.cxx | 20 ++++++++++++-------- fairmq/Device.h | 3 +++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/fairmq/Device.cxx b/fairmq/Device.cxx index f097dc99..9d8af779 100644 --- a/fairmq/Device.cxx +++ b/fairmq/Device.cxx @@ -457,11 +457,8 @@ void Device::RunWrapper() if (rateLogging && rateLogger->joinable()) { rateLogger->join(); } }); - // notify transports to resume transfers - for (auto& t : fTransports) { - t.second->Resume(); - } + ResumeTransports(); // change to Error state in case of an exception, to release LogSocketRates tools::CallOnDestruction cod([&](){ @@ -773,8 +770,15 @@ void Device::LogSocketRates() void Device::InterruptTransports() { - for (auto& transport : fTransports) { - transport.second->Interrupt(); + for (auto& [transportType, transport] : fTransports) { + transport->Interrupt(); + } +} + +void Device::ResumeTransports() +{ + for (auto& [transportType, transport] : fTransports) { + transport->Resume(); } } @@ -789,8 +793,8 @@ void Device::ResetTaskWrapper() void Device::ResetWrapper() { - for (auto& transport : fTransports) { - transport.second->Reset(); + for (auto& [transportType, transport] : fTransports) { + transport->Reset(); } Reset(); diff --git a/fairmq/Device.h b/fairmq/Device.h index 5eba4564..c3f8fce2 100644 --- a/fairmq/Device.h +++ b/fairmq/Device.h @@ -590,6 +590,9 @@ class Device /// Notifies transports to cease any blocking activity void InterruptTransports(); + /// Notifies transports to resume any blocking activity + void ResumeTransports(); + /// Shuts down the transports and the device void Exit() {}