When, for example, a timed wait is being performed on a conditional variable 
the routine timeout_common() will end up being called. It will acquire the 
ct->ct_lock before it does it's work. However, if a timer interrupt occurs then 
callout_schedule_1 may end up being called which will also try and acquire the 
same lock. This thread is running at PIL 10 and will find the mutex being held. 

I am coming from build 79 where this never used to cause a deadlock problem but 
I note now that there's been changes to mutex handling (e.g. the introduction 
of a mutex_delay operation). I assume I need to do some work here for the 
platform I am working on. Can someone describe the changes that were done in 
this area?

Neale Ferguson
--
This message posted from opensolaris.org
_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to