A Ksem question [Was: Re: changes to thread locking layer]

Alan L. Batongbacal alanlb at rrinc.com
Tue Apr 11 13:34:11 PDT 2000




Patrick Tullmann wrote:
> 
> Thanks for the backtrace.  Looks like all the threads are blocked on
> different locks (the utilities you've got for querying this stuff are
> pretty spiffy...).

Thanks, BeOS is a pretty spiffy O/S :)  It's free, too...

> 
> Are the semaphores initialized correctly?  I belive the Kaffe locking
> system requires the semaphores to have an initial value of '1' (e.g.,
> the resource is available).  Yours are all at -1, implying they might
> have started at 0?

Actually, that's because FAQ.locks specifies that ksemInit() results
in an initialized but unavailable ksem...

> You might try '-vmdebug SLOWLOCKS' to see if the KaffeVM really is
> trying to lock the same lock recursively... it doesn't look like its
> getting beyond the first lock acquire in any thread, though.

I'll try that tonight.  Also, I had to run kaffe more than once to get
to this particular state; with all the threads racing about, it took
several attempts to result in a gdb-friendly deadlock condition (the
BeOS gdb port seems to have some trouble managing threads, and would
sometimes crash on "info threads").

cheers,
Alan


More information about the kaffe mailing list