Python Threads and C Semaphores

Hello,

I have a fat C++ extension to a Python 2.3.4 program. In all, I count
five threads. Of these, two are started in Python using
thread.start_new_thread(), and both of these wait on semaphores in the
C++
extension using sem_wait(). There also is one Python thread spawned with
gnuradio.gr.gr_threading.Thread.start(), and one thread running wholly
in
the extension.

I notice that when one of the Python threads calls the extension and
waits
on a semaphore, all but the C++ thread halt even when not waiting on any
semaphore. How do we get this working right?

Thank you,
Jeremy