Roland,

While working on Python, I discovered that the GNU implementation of 
mutex_locK() is
not compatible with Python's cthread support.  I modified the Python sources to 
get
it to compile, but thought I'd at least pass this your way for consideration.

The problem is with the use of a #define for mutex_init:

(From /include/cthreads.h)
#define mutex_init(m) \
        MACRO_BEGIN
        spin_lock_init(&(m)->lock); \
        cthread_queue_init(&(m)->queue); \
        spin_lock_init(&(m)->held); \
        MACRO_END

Python uses this call in an "if" construct, expecting it to return a value.
(From [python]/Python/thread_cthread.h)
if (mutex_init(lock)) {
        // Do error handling ....
}


Should this be modified (perhaps as an inline function) to cause a return
value on error?

Thanks,

-Brent




Reply via email to