summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/include/gnuradio/py_feval.h
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-runtime/include/gnuradio/py_feval.h')
-rw-r--r--gnuradio-runtime/include/gnuradio/py_feval.h27
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 */