Loading [MathJax]/extensions/tex2jax.js
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
23namespace pism {
24
25//! @brief Code added for use in Python wrappers.
26namespace python {
27
28void set_abort_on_sigint(bool abort);
29
30int check_signal();
31void sigint_handler(int sig);
32
33extern bool gSIGINT_is_fatal;
34
35//! Installs a signal handler on construction; deinstalls on destruction.
37{
38public:
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
45private:
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.
Installs a signal handler on construction; deinstalls on destruction.
void sigint_handler(int sig)
void set_abort_on_sigint(bool abort)
bool gSIGINT_is_fatal
int check_signal()