summaryrefslogtreecommitdiff
path: root/gnuradio-core/src
diff options
context:
space:
mode:
authorJosh Blum2012-03-16 13:09:23 -0700
committerJosh Blum2012-03-16 13:09:23 -0700
commitf9a07338b9c7c0af19d64d24c47eaa9f7fe1ba38 (patch)
treeeb2a0911c73c193cb0af6bff2bd2b9c9bdf8e84f /gnuradio-core/src
parent7e1ac13d5558eaca2233c4be4c41307b5e61b8f5 (diff)
downloadgnuradio-f9a07338b9c7c0af19d64d24c47eaa9f7fe1ba38.tar.gz
gnuradio-f9a07338b9c7c0af19d64d24c47eaa9f7fe1ba38.tar.bz2
gnuradio-f9a07338b9c7c0af19d64d24c47eaa9f7fe1ba38.zip
gruel: created common swig include file
This work taken from gruel_work_squashed Common swig file includes: * Language independent exception handler * Wrapper for python calls that may block Benefits: * More common swig code, less copy pasta * Wrapper for blocking python calls handles the case where the call throws, python is not left in a bad state
Diffstat (limited to 'gnuradio-core/src')
-rw-r--r--gnuradio-core/src/lib/runtime/gr_msg_queue.i14
-rw-r--r--gnuradio-core/src/lib/swig/gnuradio.i18
2 files changed, 8 insertions, 24 deletions
diff --git a/gnuradio-core/src/lib/runtime/gr_msg_queue.i b/gnuradio-core/src/lib/runtime/gr_msg_queue.i
index c9214bef3..0a4eda78a 100644
--- a/gnuradio-core/src/lib/runtime/gr_msg_queue.i
+++ b/gnuradio-core/src/lib/runtime/gr_msg_queue.i
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2005,2009,2010 Free Software Foundation, Inc.
+ * Copyright 2005,2009,2010,2011 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -85,16 +85,16 @@ public:
%inline %{
gr_message_sptr gr_py_msg_queue__delete_head(gr_msg_queue_sptr q) {
gr_message_sptr msg;
- Py_BEGIN_ALLOW_THREADS; // release global interpreter lock
- msg = q->delete_head(); // possibly blocking call
- Py_END_ALLOW_THREADS; // acquire global interpreter lock
+ GR_PYTHON_BLOCKING_CODE(
+ msg = q->delete_head();
+ )
return msg;
}
void gr_py_msg_queue__insert_tail(gr_msg_queue_sptr q, gr_message_sptr msg) {
- Py_BEGIN_ALLOW_THREADS; // release global interpreter lock
- q->insert_tail(msg); // possibly blocking call
- Py_END_ALLOW_THREADS; // acquire global interpreter lock
+ GR_PYTHON_BLOCKING_CODE(
+ q->insert_tail(msg);
+ )
}
%}
diff --git a/gnuradio-core/src/lib/swig/gnuradio.i b/gnuradio-core/src/lib/swig/gnuradio.i
index e365aeac7..972d56c84 100644
--- a/gnuradio-core/src/lib/swig/gnuradio.i
+++ b/gnuradio-core/src/lib/swig/gnuradio.i
@@ -25,23 +25,7 @@
// SWIG interface definition
////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////
-// Language independent exception handler
-////////////////////////////////////////////////////////////////////////
-%include exception.i
-
-%exception {
- try {
- $action
- }
- catch(std::exception &e) {
- SWIG_exception(SWIG_RuntimeError, e.what());
- }
- catch(...) {
- SWIG_exception(SWIG_RuntimeError, "Unknown exception");
- }
-
-}
+%include <gruel_common.i>
////////////////////////////////////////////////////////////////////////
// Headers