Hi,
I'm having a problem with mutexes.

In one thread T1 I have:
while(!end)
{
 /* TTT */
  lock lk(mutex);
  dosomethingquick();
}

In another thread T2 I have:
void f()
{
lock lk(mutex);
doanotherthingquick();
}

I'm sure dosomethingquick returns but T2 can never acquires the mutex.
If I had a timer on line  /* TTT */ in T1 (sleeps for a millisecond), everything works fine.

Can anyone understand such a behavior? Am I doing something wrong here?

Thanks,
____________________________

Frederic MAYOT
Société Générale - Equity IT
1221 Avenue of the Americas
New York, NY 10020
+1 (212) 278-5558
+1 (917) 673-1339
*************************************************************************
This message and any attachments (the "message") are confidential and
intended solely for the addressees.
Any unauthorised use or dissemination is prohibited. 
E-mails are susceptible to alteration.   
Neither SOCIETE GENERALE nor any of its subsidiaries or affiliates 
shall be liable for the message if altered, changed or falsified. 

*************************************************************************