| Index: third_party/WebKit/Source/wtf/ThreadingWin.cpp
|
| diff --git a/third_party/WebKit/Source/wtf/ThreadingWin.cpp b/third_party/WebKit/Source/wtf/ThreadingWin.cpp
|
| index 44c81a573568b4c0ebd6952dc44647241e39ae66..2c94dd3d9e95e0731a88b58d37d2456b8d3ea61a 100644
|
| --- a/third_party/WebKit/Source/wtf/ThreadingWin.cpp
|
| +++ b/third_party/WebKit/Source/wtf/ThreadingWin.cpp
|
| @@ -143,8 +143,24 @@ void initializeThreading() {
|
| double_conversion::DoubleToStringConverter::EcmaScriptConverter();
|
| }
|
|
|
| +namespace {
|
| +ThreadSpecificKey s_currentThreadKey;
|
| +} // namespace
|
| +
|
| +void initializeCurrentThread() {
|
| + threadSpecificKeyCreate(&s_currentThreadKey, [](void*) {});
|
| +}
|
| +
|
| ThreadIdentifier currentThread() {
|
| - return wtfThreadData().threadId();
|
| + static_assert(sizeof(ThreadIdentifier) <= sizeof(void*),
|
| + "ThreadIdentifier must fit in a void*.");
|
| + void* value = threadSpecificGet(s_currentThreadKey);
|
| + if (UNLIKELY(!value)) {
|
| + value = reinterpret_cast<void*>(internal::currentThreadSyscall());
|
| + DCHECK(value);
|
| + threadSpecificSet(s_currentThreadKey, value);
|
| + }
|
| + return reinterpret_cast<intptr_t>(threadSpecificGet(s_currentThreadKey));
|
| }
|
|
|
| MutexBase::MutexBase(bool recursive) {
|
|
|