STYLE: use sigFpe::ignore helper class in runTimePostProcessing (issue #897)

This commit is contained in:
Mark Olesen
2018-07-20 15:56:15 +02:00
parent 56dd71ab11
commit f9a956ba7e

View File

@ -145,13 +145,11 @@ bool Foam::functionObjects::runTimePostProcessing::write()
Info<< type() << " " << name() << " output:" << nl
<< " Constructing scene" << endl;
// Unset any floating point trapping
// Disable any floating point trapping
// (some low-level rendering functionality does not like it)
const bool oldFpe = sigFpe::active();
if (oldFpe)
{
sigFpe::unset();
}
sigFpe::ignore sigFpeHandling; //<- disable in local scope
// Initialise render window
auto renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
@ -240,11 +238,12 @@ bool Foam::functionObjects::runTimePostProcessing::write()
surfaces_[i].clear();
}
// Restore floating point trapping
if (oldFpe)
{
sigFpe::set();
}
// Instead of relying on the destructor, manually restore the previous
// SIGFPE state.
// This is only to avoid compiler complaints about unused variables.
sigFpeHandling.restore();
return true;
}