> I suspect a bug in your code. Are you holding the
> ptr->mutex when doing 
> the cv_signal?

Yes, I do. 
> 
> What is the value of tmo?

I guess it isn't the reason either. Typical values are from 250000 to 5000000 
(0,25 to 5 s).

> 
> Also, be aware that mutex deadlocks may occur --
> cv_timedwait() drops, 
> and reacquires the lock.  If it can't reacquire the
> lock, then badness 
> will ensue, and it may appear hung when it is merely
> blocked.

This is true. But why does it work correctly with a previous call 
"(void) ddi_get_lbolt();"?
The trouble with the mutexes would be the same then.

Couldn't it be that there is a strange thing with ddi_get_lbolt() when
called for the first time (even though it sounds unbelieveable to me) ?

Of course the proof would be hard to do - a complete driver just to test
this. That's why I thought perhaps a question could be permitted... 

> 
>     -- Garrett
> >  
> > This message posted from opensolaris.org
> > _______________________________________________
> > opensolaris-code mailing list
> > opensolaris-code@opensolaris.org
> >
> http://mail.opensolaris.org/mailman/listinfo/opensolar
> is-code
> >   
> 
> _______________________________________________
> opensolaris-code mailing list
> opensolaris-code@opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/opensolar
> is-code
 
 
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