[EMAIL PROTECTED] wrote: > Due to big changes in GNU Classpath of 2004-05-31, I updated my tarball > to adapt it accordingly. However, there are some notes to be mentioned: > > (1) javax/swing/JComponent.java uses holdsLock() method in > java.lang.Thread to handle double-buffering, but Kaffe lacks it. > > (2) Java2D implementation in GNU Classpath makes use of much newer > version of Cairo, but the one shipped with some Linux ditributions > is a bit old. > > In my tarball, remove-holdslock.diff solves the (1) and (2) can be fixed > with fix-gtkcairopeer.diff. Another way to solve (1) is to implement it, > but I have no idea how it should exactly be implemented, so that I did > a dummy one[1].
Okay, I've implemented holdLock like this in pure java code: public static boolean holdsLock(Object obj) { // use obj.notify to check if the current thread holds // the monitor of the object. // if it doesn't, notify will throw an exception. try { obj.notify(); // okay, current thread holds lock return true; } catch (IllegalMonitorStateException e) { // it doesn't hold the lock return false; } } I believe it's correct, thought it's not optimal performance wise :) cheers, dalibor topic _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe