Travis Vitek wrote:
Martin Sebor wrote:
[...]
I wonder if this might be the cause of the problem:
http://svn.apache.org/viewvc?view=rev&revision=576787
[...]
(Farid, the ChangeLog has your name on it even though the change
itself was mine. Let it be a reminder to you to give blame where
blame is due :)
Are you sure? I specifically remember Farid and I trying to convince you
that it needed to be a class guard instead of a static guard. The
conversation is archived at
http://www.nabble.com/forum/ViewPost.jtp?post=12680046.
That's right, this one is your guys' fault! ;-)
I was talking about the other change which I'm to blame for:
http://svn.apache.org/viewvc?view=rev&revision=588734
Farid was just nice enough to merge it to trunk for me and
in the process replaced my name in the ChangeLog with mine:
http://svn.apache.org/viewvc?view=rev&revision=590124
It is likely that is actually the problem. As Farid and I agreed, the
functions __rw_manage_cat_data, catopen, catclose, catgets need to use the
same lock. Looks like we need to add a scope to isolate the guard so that
the lock is released before the _RWSTD_REQUIRES().
Something like that. Btw., the deadlock problem here has been
an issue before -- see (Rogue Wave only):
http://insight.roguewave.com/onyxinsight/qa/qa30046.htm
Martin