Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Invoke JNI and also capture 'quit' events?



Hi all,

I'm writing a program which needs to do the following things:

1. Open a connection to a message-passing system which communicates via SysV IPC.
2. Invoke a JVM and instantiate some GUI objects (i.e. the AWT not-on- mail-thread rule applies).
3. Listen for messages on IPC, and convert them into appropriate Java method calls (and do them).
4. Cleanly disconnect from the IPC system when the program quits.


I started with the simpleJavaLauncher sample program and have something which performs requirements 1-3. However, it does not disconnect on exit.

So, I've been looking into how I can capture the "quit" event and write an appropriate handler. Thus far, I've found the Carbon function "InstallApplicationEventHandler", and have had some success in seeing the kHICommandQuit message in a separate test program. However, this seems to require the Carbon run loop invoked by "RunApplicationEventLoop", rather than CoreFoundation's CFRunLoopRun. Unfortunately, if I don't use CFRunLoopRun in main, my program hangs when the secondary thread tries to instantiate the first Java GUI object.

Is there a way that I can capture the Quit message in the CFRunLoop, or invoke the JVM with the Carbon loop? (Or even better, does cmd-Q/ Quit menu item generate a BSD signal I can capture before my program dies?)

I've done lots of Java programming and lots of Unix programming, but this is my first foray into Carbon, so please be gentle ;).

Thanks,

Jamison Hope

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Java-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/java-dev/email@hidden

This email sent to email@hidden


Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.