From 6ac572a17931910cf2b2e5af8e6c166f8ae18fc4 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Wed, 10 Apr 2024 13:16:01 +0200 Subject: [PATCH] BUG: masterUncollatedFileOperation::read() masked return value (#3135) ENH: combine broadcasts for uncollated master-only handling --- .../masterUncollatedFileOperation.C | 17 +++++------------ .../uncollatedFileOperation.C | 14 +++++--------- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.C b/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.C index ac4ffc8e229..0b8c5aba872 100644 --- a/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.C +++ b/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.C @@ -2167,8 +2167,7 @@ bool Foam::fileOperations::masterUncollatedFileOperation::read << endl; } - bool ok = false; - if (Pstream::master(UPstream::worldComm)) + if (UPstream::master(UPstream::worldComm)) { // Do master-only reading always. const bool oldParRun = UPstream::parRun(false); @@ -2184,21 +2183,14 @@ bool Foam::fileOperations::masterUncollatedFileOperation::read UPstream::parRun(oldParRun); // Restore parallel state } - // Broadcast regIOobjects content - if (Pstream::parRun()) + // Broadcast regIOobject content, with writeData/readData handling + if (UPstream::parRun()) { - Pstream::broadcasts - ( - UPstream::worldComm, - ok, - io.headerClassName(), - io.note() - ); - if (UPstream::master(UPstream::worldComm)) { OPBstream os(UPstream::worldComm, format); + os << io.headerClassName() << io.note(); bool okWrite = io.writeData(os); ok = ok && okWrite; } @@ -2206,6 +2198,7 @@ bool Foam::fileOperations::masterUncollatedFileOperation::read { IPBstream is(UPstream::worldComm, format); + is >> io.headerClassName() >> io.note(); ok = io.readData(is); } } diff --git a/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C b/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C index ea850885581..d2b6a3656f6 100644 --- a/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C +++ b/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C @@ -699,7 +699,7 @@ bool Foam::fileOperations::uncollatedFileOperation::read { bool ok = false; - if (!masterOnly || Pstream::master(UPstream::worldComm)) + if (!masterOnly || UPstream::master(UPstream::worldComm)) { if (debug) { @@ -741,19 +741,14 @@ bool Foam::fileOperations::uncollatedFileOperation::read } } - if (masterOnly && Pstream::parRun()) + if (masterOnly && UPstream::parRun()) { - Pstream::broadcasts - ( - UPstream::worldComm, - io.headerClassName(), - io.note() - ); - + // Broadcast regIOobject content, with writeData/readData handling if (UPstream::master(UPstream::worldComm)) { OPBstream os(UPstream::worldComm, format); + os << io.headerClassName() << io.note(); bool okWrite = io.writeData(os); ok = ok && okWrite; } @@ -761,6 +756,7 @@ bool Foam::fileOperations::uncollatedFileOperation::read { IPBstream is(UPstream::worldComm, format); + is >> io.headerClassName() >> io.note(); ok = io.readData(is); } } -- GitLab