Changeset 6782

Show
Ignore:
Timestamp:
11/01/07 21:02:56
Author:
jcorgan
Message:

Merged r6780:6781 from jcorgan/t196. Fixes ticket:196.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.i

    r6466 r6782  
    5050}; 
    5151 
    52 %{ 
    53 class ensure_py_gil_state2 { 
    54     PyGILState_STATE    d_gstate; 
    55 public: 
    56   ensure_py_gil_state2()  { d_gstate = PyGILState_Ensure(); } 
    57   ~ensure_py_gil_state2() { PyGILState_Release(d_gstate); } 
    58 }; 
    59 %} 
    60  
    6152%inline %{ 
    6253void top_block_run_unlocked(gr_top_block_sptr r) throw (std::runtime_error)  
    6354{ 
    64     ensure_py_gil_state2 _lock; 
     55    Py_BEGIN_ALLOW_THREADS;            // release global interpreter lock 
    6556    r->run(); 
     57    Py_END_ALLOW_THREADS;               // acquire global interpreter lock 
    6658} 
    6759 
    6860void top_block_wait_unlocked(gr_top_block_sptr r) throw (std::runtime_error)  
    6961{ 
    70     ensure_py_gil_state2 _lock; 
     62    Py_BEGIN_ALLOW_THREADS;            // release global interpreter lock 
    7163    r->wait(); 
     64    Py_END_ALLOW_THREADS;               // acquire global interpreter lock 
    7265} 
    7366%}