From a9280d103fe504187ebaed3dc53491abf3e11712 Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Wed, 17 Aug 2016 23:02:58 +0100 Subject: [PATCH] sigWriteNow, sigStopAtWriteNow: Change runTimePtr_ to static member --- src/OSspecific/POSIX/signals/sigStopAtWriteNow.C | 11 ++++++++++- src/OSspecific/POSIX/signals/sigStopAtWriteNow.H | 7 ++++++- src/OSspecific/POSIX/signals/sigWriteNow.C | 10 +++++++++- src/OSspecific/POSIX/signals/sigWriteNow.H | 5 ++++- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/OSspecific/POSIX/signals/sigStopAtWriteNow.C b/src/OSspecific/POSIX/signals/sigStopAtWriteNow.C index 97749284aba..9808f91c113 100644 --- a/src/OSspecific/POSIX/signals/sigStopAtWriteNow.C +++ b/src/OSspecific/POSIX/signals/sigStopAtWriteNow.C @@ -33,41 +33,50 @@ License namespace Foam { + // Signal number to catch int sigStopAtWriteNow::signal_ ( debug::optimisationSwitch("stopAtWriteNowSignal", -1) ); + // Register re-reader class addstopAtWriteNowSignalToOpt : public ::Foam::simpleRegIOobject { + public: + addstopAtWriteNowSignalToOpt(const char* name) : ::Foam::simpleRegIOobject(Foam::debug::addOptimisationObject, name) {} + virtual ~addstopAtWriteNowSignalToOpt() {} + virtual void readData(Foam::Istream& is) { sigStopAtWriteNow::signal_ = readLabel(is); sigStopAtWriteNow::set(true); } + virtual void writeData(Foam::Ostream& os) const { os << sigStopAtWriteNow::signal_; } }; + addstopAtWriteNowSignalToOpt addstopAtWriteNowSignalToOpt_ ( "stopAtWriteNowSignal" ); + } -static Foam::Time const* runTimePtr_ = nullptr; +Foam::Time const* Foam::sigStopAtWriteNow::runTimePtr_ = nullptr; struct sigaction Foam::sigStopAtWriteNow::oldAction_; diff --git a/src/OSspecific/POSIX/signals/sigStopAtWriteNow.H b/src/OSspecific/POSIX/signals/sigStopAtWriteNow.H index 12da420a96f..bf83a350d78 100644 --- a/src/OSspecific/POSIX/signals/sigStopAtWriteNow.H +++ b/src/OSspecific/POSIX/signals/sigStopAtWriteNow.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -58,9 +58,13 @@ class sigStopAtWriteNow //- Number of signal to use static int signal_; + //- Pointer to Time + static Time const* runTimePtr_; + //- Saved old signal trapping setting static struct sigaction oldAction_; + // Private Member Functions static void sigHandler(int); @@ -71,6 +75,7 @@ public: //- wip. Have setter have access to signal_ friend class addstopAtWriteNowSignalToOpt; + // Constructors //- Construct null diff --git a/src/OSspecific/POSIX/signals/sigWriteNow.C b/src/OSspecific/POSIX/signals/sigWriteNow.C index 9af0e28406d..c226ff6e1f5 100644 --- a/src/OSspecific/POSIX/signals/sigWriteNow.C +++ b/src/OSspecific/POSIX/signals/sigWriteNow.C @@ -33,39 +33,47 @@ License namespace Foam { + // Signal number to catch int sigWriteNow::signal_ ( debug::optimisationSwitch("writeNowSignal", -1) ); + // Register re-reader class addwriteNowSignalToOpt : public ::Foam::simpleRegIOobject { + public: + addwriteNowSignalToOpt(const char* name) : ::Foam::simpleRegIOobject(Foam::debug::addOptimisationObject, name) {} + virtual ~addwriteNowSignalToOpt() {} + virtual void readData(Foam::Istream& is) { sigWriteNow::signal_ = readLabel(is); sigWriteNow::set(true); } + virtual void writeData(Foam::Ostream& os) const { os << sigWriteNow::signal_; } }; + addwriteNowSignalToOpt addwriteNowSignalToOpt_("writeNowSignal"); } -static Foam::Time* runTimePtr_ = nullptr; +Foam::Time* Foam::sigWriteNow::runTimePtr_ = nullptr; struct sigaction Foam::sigWriteNow::oldAction_; diff --git a/src/OSspecific/POSIX/signals/sigWriteNow.H b/src/OSspecific/POSIX/signals/sigWriteNow.H index ea1207cfb8a..0a9cda36dec 100644 --- a/src/OSspecific/POSIX/signals/sigWriteNow.H +++ b/src/OSspecific/POSIX/signals/sigWriteNow.H @@ -57,9 +57,13 @@ class sigWriteNow //- Number of signal to use static int signal_; + //- Pointer to Time + static Time* runTimePtr_; + //- Saved old signal trapping setting static struct sigaction oldAction_; + // Private Member Functions static void sigHandler(int); @@ -92,7 +96,6 @@ public: //- Is active? bool active() const; - }; -- GitLab