RFR: 8230877: Rename THREAD_LOCAL_DECL to thread_local

Kim Barrett kim.barrett at oracle.com
Wed Sep 11 22:58:03 UTC 2019

> On Sep 11, 2019, at 6:23 PM, Per Liden <per.liden at oracle.com> wrote:
> On 9/12/19 12:12 AM, Kim Barrett wrote:
>>> On Sep 11, 2019, at 5:37 PM, Kim Barrett <kim.barrett at oracle.com> wrote:
>>> Instead for VS we probably need to do an MSVC version check to decide
>>> whether to define thread_local to __declspec(thread), but I don't know which
>>> version of VS starts providing it natively.  Either that or prune the set of
>>> (at least purportedly) supported versions somewhat.
>> According to boost.config and various other places I found, it appears
>> thread_local first shows up in Visual Studio 2015. So having a
>> __declspec(thread) definition protected with "#if _MSC_VER < 1900" should do
>> the trick.
> I sort of came to the same conclusion. According to this table [1], there's "Partial" support in VS2010, and full support in VS2015. No details on what "Partial" means. Some additional googling vaguely suggests that "Partial" refers to support for "__declspec(thread)" and full support would be "thread_local", but I can't find any official document saying that.
> Defining thread_local for pre-VS2015 (_MSC_VER < 1900) seems like a reasonable way forward.
> Updated webrev: http://cr.openjdk.java.net/~pliden/8230877/webrev.1
> /Per
> [1] https://docs.microsoft.com/en-us/previous-versions/hh567368(v=vs.140)?redirectedfrom=MSDN#c11-core-language-features-table-concurrency

Looks good.

More information about the hotspot-dev mailing list