On Thu, 2008-06-05 at 19:31 +0200, Manuel Teira wrote:
> ...
> initMutexattr[1](once: 0xffffffff7e14e300, mutexattr: 0xffffffff7e1535f8)
> initMutexattr[1](once: 0xffffffff7e14e620, mutexattr: 0xffffffff7e1535d8)
> Mutex::Mutex with mutex at 0xffffffff7e14e680 and pthread_mutex_attr_t 
> at 0x0000000100400758
> Error initializing mutex: 0xffffffff7e14e680. Error 0
> AllThreadsStatuses ctor. Mutex: 0xffffffff7e14e680
> 
> [snip lots of other initMutexattr and Mutex::Mutex nonrelated calls]
> initMutexattr[1](once: 0x00000001003f7730, mutexattr: 0x0000000100400758)
> 
> 
> I suspect that the static nature of AllThreadStatuses could be involved. 
> Any thought?

I'm pretty sure you are correct about the static initialisation order.

One problem that your trace points out though is that we will get a
_different_ initialisation for each file including Mutex.h due to the
anonymous namespace used here - this wasn't the intention of this code.
I guess this needs to be fixed by creating a Mutex.cpp to hold this
anonymous namespace. However I'm not sure whether or not this is the
cause of your problem,although it can't help.

Andrew


Reply via email to