Request for review (M): 7132070: Use a mach_port_t as the OSThread thread_id rather than pthread_t on BSD/OSX

Daniel D. Daugherty daniel.daugherty at
Wed Feb 15 07:16:34 PST 2012

The _ALLBSD_SOURCE symbol is defined by the HotSpot Makefile infrastructure.
It is used to identify code specific to the BSD family of OSes.
The __APPLE__ symbol is defined by the Apple compiler(s) and it is used to
identify code specific to MacOS X.

Typically you'll see something like:


<code that works on all BSDs>

#ifdef __APPLE__
<code specific to MacOS X>
<code for other BSDs>
#endif // __APPLE__
#endif // _ALLBSD_SOURCE

As for building on non-MacOS X BSDs, that would be nice, but we
don't have the infrastructure to do it.


On 2/15/12 6:57 AM, Mikael Gerdin wrote:
> Hi Staffan,
> It looks like you're adding Mac-specific stuff like thread_t and calls 
> to ::mach_thread_self() inside _ALLBSD_SOURCE #ifdefs, are you sure 
> this won't break BSD builds?
> Does the OSX compiler define _ALLBSD_SOURCE or is that for 
> (free|net|open)bsd?
> It's too bad we don't do regular builds on any of the BSDs, otherwise 
> this would have been easier to figure out.
> /Mikael
> On 2012-02-15 11:29, Staffan Larsen wrote:
>> Please review the following change:
>> Bug:
>> Webrev:
>> This changes the value returned by OSThread::thread_id() and
>> os::current_thread_id() on macosx to return the mach thread_t instead of
>> pthread_t. There is a separate method OSThread:pthread_id() that returns
>> the pthread_t.
>> The reason for this change is both that JFR would like a 4 byte value
>> for thread id, and that SA requires access to the thread_t.
>> Thanks,
>> /Staffan

More information about the hotspot-runtime-dev mailing list