Fix Windows Engine Bot (flutter/engine#6844)

Follow-up to https://github.com/flutter/engine/pull/6833
This commit is contained in:
Michael Goderbauer
2018-11-13 09:46:30 -08:00
committed by GitHub
parent a8f108d528
commit e9bfd56271
2 changed files with 38 additions and 20 deletions

View File

@@ -6,6 +6,8 @@
namespace fml {
#if FML_THREAD_LOCAL_PTHREADS
ThreadLocal::ThreadLocal() : ThreadLocal(nullptr) {}
ThreadLocal::ThreadLocal(ThreadLocalDestroyCallback destroy)
@@ -33,4 +35,35 @@ ThreadLocal::Box::Box(ThreadLocalDestroyCallback destroy, intptr_t value)
ThreadLocal::Box::~Box() = default;
#else // FML_THREAD_LOCAL_PTHREADS
ThreadLocal::ThreadLocal() : ThreadLocal(nullptr) {}
ThreadLocal::ThreadLocal(ThreadLocalDestroyCallback destroy)
: destroy_(destroy), value_(0) {}
void ThreadLocal::Set(intptr_t value) {
if (value_ == value) {
return;
}
if (value_ != 0 && destroy_) {
destroy_(value_);
}
value_ = value;
}
intptr_t ThreadLocal::Get() {
return value_;
}
ThreadLocal::~ThreadLocal() {
if (value_ != 0 && destroy_) {
destroy_(value_);
}
}
#endif // FML_THREAD_LOCAL_PTHREADS
} // namespace fml

View File

@@ -101,30 +101,15 @@ class ThreadLocal {
class ThreadLocal {
public:
ThreadLocal() : ThreadLocal(nullptr) {}
ThreadLocal();
ThreadLocal(ThreadLocalDestroyCallback destroy)
: destroy_(destroy), value_(0) {}
ThreadLocal(ThreadLocalDestroyCallback destroy);
void Set(intptr_t value) {
if (value_ == value) {
return;
}
void Set(intptr_t value);
if (value_ != 0 && destroy_) {
destroy_(value_);
}
intptr_t Get();
value_ = value;
}
intptr_t Get() { return value_; }
~ThreadLocal() {
if (value_ != 0 && destroy_) {
destroy_(value_);
}
}
~ThreadLocal();
private:
ThreadLocalDestroyCallback destroy_;