diff options
author | Tom Rondeau <trondeau@vt.edu> | 2013-05-23 08:18:59 -0400 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2013-05-23 08:18:59 -0400 |
commit | 7daef55cb11dfc05fdab9ee3f1f78ac2904dc300 (patch) | |
tree | 5ff591dbcd3cb8d6788adafff59e7a7986a88d0f /gnuradio-runtime/include/gnuradio/py_feval.h | |
parent | 0a8078a57237fcc12f4a51f6d217c54031cc904d (diff) |
build: move from using runtime_swig.i to gnuradio.i to reduce memory load while building.
py_feval destructor issue needs fixing.
Diffstat (limited to 'gnuradio-runtime/include/gnuradio/py_feval.h')
-rw-r--r-- | gnuradio-runtime/include/gnuradio/py_feval.h | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/gnuradio-runtime/include/gnuradio/py_feval.h b/gnuradio-runtime/include/gnuradio/py_feval.h index 94def79ca1..ea5b144898 100644 --- a/gnuradio-runtime/include/gnuradio/py_feval.h +++ b/gnuradio-runtime/include/gnuradio/py_feval.h @@ -20,11 +20,21 @@ * Boston, MA 02110-1301, USA. */ +#ifndef INCLUDED_GR_PY_FEVAL_H +#define INCLUDED_GR_PY_FEVAL_H + #include <pmt/pmt.h> +class ensure_py_gil_state { + PyGILState_STATE d_gstate; +public: + ensure_py_gil_state() { d_gstate = PyGILState_Ensure(); } + ~ensure_py_gil_state() { PyGILState_Release(d_gstate); } +}; + namespace gr { - class py_feval_dd : public feval_dd + class GR_RUNTIME_API py_feval_dd : public feval_dd { public: double calleval(double x) @@ -32,9 +42,10 @@ namespace gr { ensure_py_gil_state _lock; return eval(x); } + virtual ~py_feval_dd() {}; }; - class py_feval_cc : public feval_cc + class GR_RUNTIME_API py_feval_cc : public feval_cc { public: gr_complex calleval(gr_complex x) @@ -42,9 +53,10 @@ namespace gr { ensure_py_gil_state _lock; return eval(x); } + virtual ~py_feval_cc(); }; - class py_feval_ll : public feval_ll + class GR_RUNTIME_API py_feval_ll : public feval_ll { public: long calleval(long x) @@ -52,9 +64,10 @@ namespace gr { ensure_py_gil_state _lock; return eval(x); } + virtual ~py_feval_ll(); }; - class py_feval : public feval + class GR_RUNTIME_API py_feval : public feval { public: void calleval() @@ -62,9 +75,10 @@ namespace gr { ensure_py_gil_state _lock; eval(); } + virtual ~py_feval(); }; - class py_feval_p : public feval_p + class GR_RUNTIME_API py_feval_p : public feval_p { public: void calleval(pmt::pmt_t x) @@ -72,6 +86,9 @@ namespace gr { ensure_py_gil_state _lock; eval(x); } + virtual ~py_feval_p(); }; } /* namespace gr */ + +#endif /* INCLUDED_GR_PY_FEVAL_H */ |