diff options
author | Josh Blum | 2012-03-16 13:09:23 -0700 |
---|---|---|
committer | Josh Blum | 2012-03-16 13:09:23 -0700 |
commit | f9a07338b9c7c0af19d64d24c47eaa9f7fe1ba38 (patch) | |
tree | eb2a0911c73c193cb0af6bff2bd2b9c9bdf8e84f /gnuradio-core/src | |
parent | 7e1ac13d5558eaca2233c4be4c41307b5e61b8f5 (diff) | |
download | gnuradio-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.i | 14 | ||||
-rw-r--r-- | gnuradio-core/src/lib/swig/gnuradio.i | 18 |
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 |