[PATCH] D70447: [Support] ThreadPoolExecutor fixes for Windows/MinGW
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 3 17:53:41 PST 2020
MaskRay added inline comments.
================
Comment at: llvm/lib/Support/Parallel.cpp:47
+ Threads.resize(1);
+ std::unique_lock<std::mutex> Lock(Mutex);
+ Threads[0] = std::thread([&, ThreadCount] {
----------------
std::lock_guard
================
Comment at: llvm/lib/Support/Parallel.cpp:51
+ Threads.emplace_back([=] { work(); });
+ if (Stop)
+ break;
----------------
Why `if (Stop) break`
================
Comment at: llvm/lib/Support/Parallel.cpp:74
+ if (T.get_id() == CurrentThreadId)
+ T.detach();
+ else
----------------
Why `detach`?
================
Comment at: llvm/lib/Support/Parallel.cpp:79
+ struct Creator {
+ static void *call() { return new ThreadPoolExecutor(); }
----------------
You can use
```lang=cpp
static ManagedStatic<ThreadPoolExecutor, object_creator<ThreadPoolExecutor>,
ThreadPoolExecutor::Deleter>
ManagedExec;
```
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D70447/new/
https://reviews.llvm.org/D70447
More information about the llvm-commits
mailing list