Kaffe and Netscape IFC
williamc at dai.ed.ac.uk
Tue Apr 29 07:08:53 PDT 1997
I was hoping to be able to use Kaffe with applications written using
Netscape's IFC (Internet Foundation Classes, a popular pure Java
toolkit). It ought to work because the only AWT classes IFC uses are
very basic things like Frame and Graphics; everything in each Frame
is drawn on a single Panel by the IFC Java code, which implements its
own non-native widgets.
But my simple test application only manages to put up a blank grey
window. The problem is that the first time the IFC code calls
Thread.yield() (in netscape.application.EventLoop.letAWTThreadRun),
its thread hangs forever. I've tried increasing its priority and
reducing that of the BISS AWT thread, to no effect. Stopping the IFC
calling yield() lets it get a lot further, but it now hangs when it
calls Object.wait(int) in TimerQueue.run().
Are there any known problems with Kaffe's threads? I haven't been
able to make any other code that similarly goes dead on yielding to
(In the method trace I see callbacks from the BISS AWT getting as far
as the Netscape Frame's handleEvent, so things are clearly almost
Kaffe 0.8.4, with BISS AWT
libc 5.4.23, gcc 2.7.2, ld 2.7.1, libdl 1.9.2, XF86 3.2
By the way, I couldn't get the EPFL SAWT to work at all---once I'd
fixed up its Makefile.in to say $(OBJECT) rather than $(OBJECTS), it
got started OK, but it always core dumps a few seconds after popping
up a (blank grey) window. GDB says it's getting SIGSEGV in
gcHeapsize(), which is not surprising since gcHeapsize is a variable.
Mind you, I was getting this problem even with plain kaffe before I
upgraded my binutils.
More information about the kaffe