Commit 09899148 authored by Mark Olesen's avatar Mark Olesen
Browse files

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

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