Synchronization During Java VM Initialization and Termination

For my 590 research class, Corky asked me to write a short report about the synchronization points during Java VM initialization and termination. That’s what I worked on last weekend. It’s available on my research page now: Synchronization During Java VM Initialization and Termination.

Since then, I’ve had to deal with an upset stomach and with moving the DrJava site from Sourceforge to Sourceforge is limiting our quota to 100 MB, and we were using over 600 MB. I was able to cut it down to approximately 180 MB, but without sacrificing the Javadocs and Klover, we can’t get below 100 MB. So we moved.

On the concurrent unit testing project, I’ve tried to somehow record the sync points during termination in a better way. That’s taken care off now: When the main method is exited, I enable a flag to transfer every sync point immediately. There’s one caveat: With an empty main method, Java never enters it, so it’s never exited. That means that for a program with an empty main method, no sync points during termination are recorded. I can live with that, though.

I’ve also renamed a number of important classes: The former package (tm stands for “Thread Monitor”) is now called edu.rice.cs.cunit.record. The old class ThreadMonJPDA in that package is now called Record. That fits better with the edu.rice.cs.cunit.replay package and the Replay class.

I’ve been wanting to port the verified Promela algorithm back to Java, but after throwing up multiple times, I’ve been too weak for that.


About Mathias

Software development engineer. Principal developer of DrJava. Recent Ph.D. graduate from the Department of Computer Science at Rice University.
This entry was posted in Concurrent Unit Testing, DrJava, Graduate School, xajavac. Bookmark the permalink.

Leave a Reply