Darwin OpenJDK 7 Binaries - Not Working With SWT

Mike Swingler swingler at apple.com
Sun Oct 12 12:38:33 PDT 2008


On Oct 12, 2008, at 12:26 PM, Michael Franz wrote:

> On Sun, Oct 12, 2008 at 11:21 AM, Mike Swingler <swingler at apple.com>  
> wrote:
>
> On Oct 11, 2008, at 6:14 PM, Michael Franz wrote:
>
>> Hi,
>>
>> On Sun, Sep 7, 2008 at 9:22 PM, Landon Fuller <landonf at plausiblelabs.com 
>> > wrote:
>>
>> On Sep 7, 2008, at 1:08 PM, Michael Franz wrote:
>>
>> I changed the startup to not pass the flag.  I was running this  
>> from inside eclipse, but eclipse must somehow pass the option as it  
>> did not show up in the command.
>>
>> There are two small patches from SoyLatte that need to be re- 
>> implemented for OpenJDK, both of which you have run into:
>>
>> -XstartOnFirstThread:
>>
>>        Soylatte by starts a Cocoa runloop on the first thread, and  
>> then run the JVM main() function again on a separate thread
>>        Setting -XstartOnFirstThread has the same behavior on Mac OS  
>> X, in that Java is started directly on the first thread.
>>
>> Reading through the code and finding a few bugs on primordial  
>> threads and this blog entry[1] , I wonder if -XstartOnFirstThread  
>> is really OS X specific (I assumed it was).
>>
>> I was also reading through the Cocoa reference I have, my  
>> understanding is that it is possible to create a runloop on other  
>> threads, not just the first thread.
>
> You can create runloops on other threads, but their sources will be  
> setup by you. Only the runloop on Thread 0 receives keyboard and  
> mouse events, which is why -XstartOnFirstThread is necessary when  
> user-space code wants to pump the event loop. Otherwise, Thread 0  
> needs to be parked until it's time for the AWT to startup, and start  
> running the show.
>
> Is it possible to find Thread 0 from other threads?

I'm not sure what you mean by "find"? Like, with the pthread API? Once  
a runloop is pumping on it, most other API can deliver work to it via - 
performSelectorOnMainThread:, or other CFRunLoop API - but if user- 
space code never starts a runloop on Thread 0, those API's in AppKit,  
Carbon, etc will not work.

Mike Swingler
Java Runtime Engineer
Apple Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/bsd-port-dev/attachments/20081012/36b1fba0/attachment.html 


More information about the bsd-port-dev mailing list