This is the mail archive of the java-prs@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libgcj/16662] IllegalMonitorStateException in EventQueue.getNextEvent(): possible hash synchronization bug?


------- Additional Comments From Hans dot Boehm at hp dot com  2004-08-05 00:56 -------
I'm looking at this, and trying to remember the intricacies of this code.

It appears that the faulting thread successfully acquired the heavyweight lock 
on an object (presumably because the lightweight entry was used for another 
object) and then another thread later acquired the lightweight lock on the same 
object.  This should of course be impossible.

Looking at the code, I noticed that _Jv_ObjectCheckMonitor appears broken.  If 
the address in the lightweight lock is zero, we may still hold a heavyweight 
lock on the object.  This can happen since the lightweight lock slots are 
shared between objects.  Thus it may have been in use when we first tried to 
acquire the lock.  But I don't know what relies on _Jv_ObjectCheckMonitor.  I 
would guess it has nothing to do with this problem.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |Hans dot Boehm at hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16662


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]