PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
pism_python.hh
Go to the documentation of this file.
1 // Copyright (C) 2011, 2014, 2015 David Maxwell and Constantine Khroulev
2 //
3 // This file is part of PISM.
4 //
5 // PISM is free software; you can redistribute it and/or modify it under the
6 // terms of the GNU General Public License as published by the Free Software
7 // Foundation; either version 3 of the License, or (at your option) any later
8 // version.
9 //
10 // PISM is distributed in the hope that it will be useful, but WITHOUT ANY
11 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 // details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with PISM; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 
19 
20 #ifndef _PISM_PYTHON_
21 #define _PISM_PYTHON_
22 
23 namespace pism {
24 
25 //! @brief Code added for use in Python wrappers.
26 namespace python {
27 
28 void set_abort_on_sigint(bool abort);
29 
30 int check_signal();
31 void sigint_handler(int sig);
32 
33 extern bool gSIGINT_is_fatal;
34 
35 //! Installs a signal handler on construction; deinstalls on destruction.
37 {
38 public:
39  //! Installs handle \a new_handler for signal \a sig.
40  SigInstaller(int sig, void (*new_handler)(int));
41  //! Restores the signal handler to its previous value.
42  void release();
43 
44  ~SigInstaller();
45 private:
46  void (*m_old_handler)(int);
47  int m_sig;
48 };
49 
50 } // end of namespace python
51 } // end of namespace pism
52 
53 #endif
void release()
Restores the signal handler to its previous value.
Definition: pism_python.cc:38
SigInstaller(int sig, void(*new_handler)(int))
Installs handle new_handler for signal sig.
Definition: pism_python.cc:33
Installs a signal handler on construction; deinstalls on destruction.
Definition: pism_python.hh:37
void sigint_handler(int sig)
Definition: pism_python.cc:60
void set_abort_on_sigint(bool abort)
Definition: pism_python.cc:29
bool gSIGINT_is_fatal
Definition: pism_python.cc:50
int check_signal()
Definition: pism_python.cc:52