[ https://issues.apache.org/jira/browse/MESOS-3119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14641257#comment-14641257 ]
Benjamin Hindman edited comment on MESOS-3119 at 7/24/15 11:49 PM: ------------------------------------------------------------------- Turns out we can't use {{thread_local}} with the default installed clang on OS X. See https://devforums.apple.com/message/1079348#1079348. Relevant snippet: "We don't support the thread_local implementation from the open-source Clang because we believe we can provide a higher-performance implementation for our platforms using various features in the dynamic linker. Such an implementation would be ABI-incompatible with the implementation in the open-source Clang, so we won't support thread_local until we get an implementation we can live with for the foreseeable future." So, I've reopened this issue and reverted {{f24db46b92796efaa15766c625b8ef4706240f2f}} for now. One possible path forward is to use {{__thread}} since it's supported by both clang and gcc (and we could introduce something similar for non-POSIX platforms), but we'd need to be careful because it has C style semantics, which means that we won't get object construction/destruction (which we would with {{thread_local}} IIUC). We currently don't need object construction/destruction in our code base, but I'd still prefer to wrap {{__thread}} in some sort of macro that makes it clear that we need to create _pointers_ when using {{__thread}}. was (Author: benjaminhindman): Turns out we can't use `thread_local` with the default installed clang on OS X. See https://devforums.apple.com/message/1079348#1079348. Relevant snippet: "We don't support the thread_local implementation from the open-source Clang because we believe we can provide a higher-performance implementation for our platforms using various features in the dynamic linker. Such an implementation would be ABI-incompatible with the implementation in the open-source Clang, so we won't support thread_local until we get an implementation we can live with for the foreseeable future." So, I've reopened this issue and reverted `f24db46b92796efaa15766c625b8ef4706240f2f` for now. One possible path forward is to use `__thread` since it's supported by both clang and gcc (and we could introduce something similar for non-POSIX platforms), but we'd need to be careful because it has C style semantics, which means that we won't get object construction/destruction (which we would with `thread_local` IIUC). We currently don't need object construction/destruction in our code base, but I'd still prefer to wrap __thread in some sort of macro that makes it clear that we need to create _pointers_ when using `__thread`. > Remove pthread specific code from Libprocess > -------------------------------------------- > > Key: MESOS-3119 > URL: https://issues.apache.org/jira/browse/MESOS-3119 > Project: Mesos > Issue Type: Improvement > Components: libprocess > Reporter: Joris Van Remoortere > Assignee: Joris Van Remoortere > Labels: libprocess, mesosphere, windows > Fix For: 0.24.0 > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)