]> git.gag.com Git - debian/gnuradio/commitdiff
Merged r6780:6781 from jcorgan/t196. Fixes ticket:196.
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Fri, 2 Nov 2007 03:02:56 +0000 (03:02 +0000)
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Fri, 2 Nov 2007 03:02:56 +0000 (03:02 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@6782 221aa14e-8319-0410-a670-987f0aec2ac5

gnuradio-core/src/lib/runtime/gr_top_block.i

index 78c2e0b95e9a8706daf41c5d8940efa553c85d87..4eb9db636d460fc446e308da0476ee7816ef2a5b 100644 (file)
@@ -49,25 +49,18 @@ public:
   bool is_running();
 };
 
-%{
-class ensure_py_gil_state2 {
-    PyGILState_STATE   d_gstate;
-public:
-  ensure_py_gil_state2()  { d_gstate = PyGILState_Ensure(); }
-  ~ensure_py_gil_state2() { PyGILState_Release(d_gstate); }
-};
-%}
-
 %inline %{
 void top_block_run_unlocked(gr_top_block_sptr r) throw (std::runtime_error) 
 {
-    ensure_py_gil_state2 _lock;
+    Py_BEGIN_ALLOW_THREADS;            // release global interpreter lock
     r->run();
+    Py_END_ALLOW_THREADS;              // acquire global interpreter lock
 }
 
 void top_block_wait_unlocked(gr_top_block_sptr r) throw (std::runtime_error) 
 {
-    ensure_py_gil_state2 _lock;
+    Py_BEGIN_ALLOW_THREADS;            // release global interpreter lock
     r->wait();
+    Py_END_ALLOW_THREADS;              // acquire global interpreter lock
 }
 %}