[kaffe] how to use NATIVE_DISPATCHER_LOOP in QT awt backend?
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
# kaffe -vmdebug VMTHREAD dwe.application.ApplicationMgr
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.
Marusys, Co. Ltd.
More information about the kaffe