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").
More information about the kaffe