Instead of this:
A::A()
{
mu = PTHREAD_MUTEX_INITIALIZER; //cannot compile
}
Try this:
A::A()
{
pthread_mutex_init( &(mu), NULL);
}
The PTHREAD_MUTEX_INITIALIZER is a macro,a C struct initializer for something like {0,0,0,0,0{0}} and can only be used at the point of definition.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…