It seems we found a weird bug with boost interprocess, some internal problem on the scoped_lock is generating a deadlock.

A simple correct usage like

void foo() {
       scoped_lock<t_mutex> lock(amutex);
       .....
}

is producing the deadlock when running 100 concurrent processes

after changing to

void foo() {
       amutex.lock();
       .....
       amutex.unlock();
}

the problem disappeared

the code on scoped_lock looks correct, and works just fine with a lower load, so, I guess this is something coming from the compiler, which is gcc 4.4.7 under linux

did anyone get similar problems?

thanks