[kaffe] how to use NATIVE_DISPATCHER_LOOP in QT awt backend?

KIM, Seong-beom sbkim at mail.marusys.com
Wed Apr 23 00:22:02 PDT 2003

Dear kaffe-awt experts,

I'm trying to use NATIVE_DISPATCHER_LOOP in my mips, qt-awt configuration.
What I did is making tlkProperties() return TLK_NATIVE_DISPATCHER_LOOP
so that NativeCollector is used when Toolkit is initialized,

Additionally, I changed tlkInit() in tlk.cc to call qapp->exec()
which never return, because it processes events in QT.

After these modification, I tried some AWT example java application only to get
these errors.

# kaffe -vmdebug VMTHREAD dwe.application.ApplicationMgr
createDaemon finaliser
createDaemon gc
firstStartThread 0x100f1de0
Dumping live threads:
`AWT-native' tid 0x10118010, status SUSPENDED flags DONTSTOP
 blocked at 0x10111e10 (0x10118010->|)
`gc' tid 0x100ca010, status SUSPENDED flags DONTSTOP
 blocked at 0x100aed38 (0x100ca010->|)
`finaliser' tid 0x100b9010, status SUSPENDED flags DONTSTOP
 blocked at 0x100ae828 (0x100b9010->|)
`main' tid 0x10006018, status SUSPENDED flags NOSTACKALLOC
 blocked at 0x100761b0 (0x10006018->|)
Deadlock: all threads blocked on internal events
Aborted (core dumped)

In run() method of NativeCollector which is defined in Toolkit.java,
the following comments can be read.

 // this does not return until the we shut down the system, since it
 // consititutes the native dispatcher loop. Don't be confused about
 // tlkInit being a sync method. It gives up the lock in the native
 // layer before falling into its dispatcher loop

I don't get the exact meaning of 3rd and 4th lines of the comments...
Did I miss something critical in tlkInit() method?

Any help will be immensely appreciated.  ;-)
Thanks in advance.

Best regards,
Kim, Seongbeom

Seong-beom Kim
Research Engineer
Marusys, Co. Ltd.
Seoul, Korea
+82-2-3445-3999 (117)

More information about the kaffe mailing list