diff --git a/emper/stats/FromAnywhere.cpp b/emper/stats/FromAnywhere.cpp index 455e405f3805981241a2bc0ae9b44968034b2af9..2459dd62b4339fa1c6e86421fa28360925a689e2 100644 --- a/emper/stats/FromAnywhere.cpp +++ b/emper/stats/FromAnywhere.cpp @@ -5,6 +5,8 @@ #include <memory> #include <string> +#include "Emper.hpp" + using namespace emper::stats; FromAnywhere::FromAnywhere(workerid_t workerCount) @@ -24,22 +26,26 @@ void FromAnywhere::recordUnblockedContext(workeraffinity_t workerAffinity, } auto FromAnywhere::operator+=(const FromAnywhere& other) -> FromAnywhere& { - for (decltype(unblockAffinitiesGeneric)::size_type i = 0; i < unblockAffinitiesGeneric.size(); - i++) { - unblockAffinitiesGeneric[i] += other.unblockAffinitiesGeneric[i]; - unblockAffinitiesIo[i] += other.unblockAffinitiesIo[i]; + if constexpr (emper::STATS_BLOCKED_CONTEXT) { + for (decltype(unblockAffinitiesGeneric)::size_type i = 0; i < unblockAffinitiesGeneric.size(); + i++) { + unblockAffinitiesGeneric[i] += other.unblockAffinitiesGeneric[i]; + unblockAffinitiesIo[i] += other.unblockAffinitiesIo[i]; + } } return *this; } void FromAnywhere::print(std::ostream& out) { - for (decltype(unblockAffinitiesGeneric)::size_type i = 0; i < unblockAffinitiesGeneric.size(); - ++i) { - out << "unblock-affinities-fa-generic" << std::to_string(i) << ": " - << std::to_string(unblockAffinitiesGeneric[i]) << std::endl; - } - for (decltype(unblockAffinitiesIo)::size_type i = 0; i < unblockAffinitiesIo.size(); ++i) { - out << "unblock-affinities-fa-io" << std::to_string(i) << ": " - << std::to_string(unblockAffinitiesIo[i]) << std::endl; + if constexpr (emper::STATS_BLOCKED_CONTEXT) { + for (decltype(unblockAffinitiesGeneric)::size_type i = 0; i < unblockAffinitiesGeneric.size(); + ++i) { + out << "unblock-affinities-fa-generic" << std::to_string(i) << ": " + << std::to_string(unblockAffinitiesGeneric[i]) << std::endl; + } + for (decltype(unblockAffinitiesIo)::size_type i = 0; i < unblockAffinitiesIo.size(); ++i) { + out << "unblock-affinities-fa-io" << std::to_string(i) << ": " + << std::to_string(unblockAffinitiesIo[i]) << std::endl; + } } }