The time has come and we finally have `thread_local` support in the Apple
tool chain:
https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html

In our code base we have a special exception for Apple that defines our
thread local to be `__thread` rather than the c++11 standard `thread_local`.
https://github.com/apache/mesos/blob/812e5e3d4e4d9e044a1cfe6cc7eaab10efb499b6/3rdparty/stout/include/stout/thread_local.hpp

A consequence of using `__thread` on Apple is that initializers for thread
locals are required to be constant expressions. This is not the case for
the c++11 standard `thread_local`.

I would like to propose that we remove this exception on the Apple platform
now that the Apple toolchain supports the c++11 standard.

As I am not a common user of the Apple development experience I would like
to ask for some input from the community as to whether requiring this
toolchain update is acceptable, and if we need a deprecation period or if
we can just make this change now.

I am leaning towards no deprecation period as I am not aware of production
environments running on systems that define `__APPLE__`.
—
*Joris Van Remoortere*
Mesosphere

Reply via email to