ENH: provide a vfork/exec version of system (issue #185)

The normal library system() command uses 'fork', which causes
problems on IB+OPENMPI.

STYLE: add Foam:: qualifier to system calls to make them easier to spot.
This commit is contained in:
Mark Olesen
2016-07-18 13:37:39 +02:00
parent 42b2086683
commit 8bb78dda60
9 changed files with 197 additions and 23 deletions

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -493,10 +493,17 @@ bool Foam::dynamicCode::copyOrCreateFiles(const bool verbose) const
bool Foam::dynamicCode::wmakeLibso() const
{
const Foam::string wmakeCmd("wmake -s libso " + this->codePath());
Info<< "Invoking " << wmakeCmd << endl;
DynamicList<string> cmd(4);
cmd.append("wmake");
cmd.append("-s");
cmd.append("libso");
cmd.append(this->codePath());
if (Foam::system(wmakeCmd))
// NOTE: could also resolve wmake command explicitly
// cmd[0] = stringOps::expand("$WM_PROJECT_DIR/wmake/wmake");
Info<< "Invoking wmake libso " << this->codePath().c_str() << endl;
if (Foam::system(cmd))
{
return false;
}