Over the last few days, I added a somewhat large number of bugfixes. The dependency fixpoint actually wasn’t complete (annotations weren’t included), and the MonitorCallInstrumentationStrategy
sometimes added constant pool entries for a method with an empty string as name and descriptor. I also changed the transfer process of the synchronization point list from an item-by-item style to a (hopefully faster) whole-list access.
During my meeting with Corky today, he suggested using a slave-push architecture: When the list is full on the slave side, the slave causes the master to transfer and reset the list. That should solve some of the balancing issues about the list size. I’ll also try to use a more compact representation of the data in the list.
I’m not sure that these changes will fix the hang problem, though.