Re: Python Threads and C Semaphores

2007-01-16 Thread Andrew MacIntyre
Dejan Rodiger wrote:
> Jeremy said the following on 16.1.2007 8:27:
>
>> 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 are two other Python threads 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?
> 
> Check the Global Interpreter Lock

More specifically, make sure that any extension code that does not
call Python API functions releases the GIL for the duration.

Look into the Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS macros and the
PyGILState*() API functions (these API functions appeared in Python 2.3).

-- 
-
Andrew I MacIntyre "These thoughts are mine alone..."
E-mail: [EMAIL PROTECTED]  (pref) | Snail: PO Box 370
[EMAIL PROTECTED] (alt) |Belconnen ACT 2616
Web:http://www.andymac.org/   |Australia
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python Threads and C Semaphores

2007-01-16 Thread Dejan Rodiger
Jeremy said the following on 16.1.2007 8:27:
> 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 are two other Python threads 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?

Check the Global Interpreter Lock

-- 
Dejan Rodiger - PGP ID 0xAC8722DC
Delete wirus from e-mail address
-- 
http://mail.python.org/mailman/listinfo/python-list


Python Threads and C Semaphores

2007-01-15 Thread Jeremy
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 are two other Python threads 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


-- 
http://mail.python.org/mailman/listinfo/python-list