llvm-project/llvm/unittests/Support
Mehdi Amini 33a7ea4b9a Add a C++11 ThreadPool implementation in LLVM
This is a very simple implementation of a thread pool using C++11
thread. It accepts any std::function<void()> for asynchronous
execution. Individual task can be synchronize using the returned
future, or the client can block on the full queue completion.

In case LLVM is configured with Threading disabled, it falls back
to sequential execution using std::async with launch:deferred.

This is intended to support parallelism for ThinLTO processing in
linker plugin, but is generic enough for any other uses.

This is a recommit of r255444 ; trying to workaround a bug in the
MSVC 2013 standard library. I think I was hit by:

 http://connect.microsoft.com/VisualStudio/feedbackdetail/view/791185/std-packaged-task-t-where-t-is-void-or-a-reference-class-are-not-movable

Recommit of r255589, trying to please g++ as well.

Differential Revision: http://reviews.llvm.org/D15464

From: mehdi_amini <mehdi_amini@91177308-0d34-0410-b5e6-96231b3b80d8>
llvm-svn: 255593
2015-12-15 00:59:19 +00:00
..
AlignOfTest.cpp Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
AllocatorTest.cpp Fix "the the" in comments. 2015-06-19 01:53:21 +00:00
ArrayRecyclerTest.cpp
BlockFrequencyTest.cpp Add - and -= operators to BlockFrequency using saturating arithmetic. 2015-10-12 18:34:00 +00:00
BranchProbabilityTest.cpp Recommit r250345, it was reverted in r250366 to investigate a bot failure. 2015-10-15 14:59:40 +00:00
CMakeLists.txt Add a C++11 ThreadPool implementation in LLVM 2015-12-15 00:59:19 +00:00
Casting.cpp Removing LLVM_EXPLICIT, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:00:20 +00:00
CommandLineTest.cpp StringRef-ify some Option APIs 2015-11-17 19:00:52 +00:00
CompressionTest.cpp [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
ConvertUTFTest.cpp Fix unsigned/signed comparison warning. 2015-01-27 01:01:39 +00:00
DataExtractorTest.cpp
DwarfTest.cpp Support: Add dwarf::getOperationEncoding() 2015-02-13 01:05:00 +00:00
EndianStreamTest.cpp Add support for double / float to EndianStream 2015-02-05 03:30:08 +00:00
EndianTest.cpp Fix another UBSan test error from r248897 and follow on fix r249689 2015-10-08 20:52:23 +00:00
ErrorOrTest.cpp Don't use std::errc. 2015-06-13 17:23:04 +00:00
FileOutputBufferTest.cpp Return ErrorOr from FileOutputBuffer::create. NFC. 2015-08-13 00:31:39 +00:00
IteratorTest.cpp
LEB128Test.cpp
LineIteratorTest.cpp
LockFileManagerTest.cpp
MD5Test.cpp
Makefile Unbreak build: Makefile must have the same change as CMakeLists.txt 2015-05-08 16:39:59 +00:00
ManagedStatic.cpp
MathExtrasTest.cpp [Support] Change SaturatingAdd()/SaturatingMultiply() to use pointer for returning overflow state 2015-12-09 17:11:28 +00:00
MemoryBufferTest.cpp Remove excess white space 2015-11-18 00:31:34 +00:00
MemoryTest.cpp Remove dead code. NFC. 2014-12-04 16:59:36 +00:00
Path.cpp Fix -Wunused-function in a non-Win32 build 2015-11-17 20:38:54 +00:00
ProcessTest.cpp Remove dead code. NFC. 2014-12-04 16:59:36 +00:00
ProgramTest.cpp Fix unit tests on Windows: handle env vars with non-ASCII chars. 2015-11-04 08:25:20 +00:00
RegexTest.cpp
ReplaceFileTest.cpp Fix rename() sometimes failing if another process uses openFileForRead() 2015-10-12 15:11:47 +00:00
ScaledNumberTest.cpp Fix infinite recursion in ScaledNumber::toInt. 2015-05-01 17:59:15 +00:00
SourceMgrTest.cpp
SpecialCaseListTest.cpp SpecialCaseList: Add support for parsing multiple input files. 2015-02-04 17:39:48 +00:00
StreamingMemoryObject.cpp Use std::unique_ptr to manage the DataStreamer in bitcode parsing. 2015-06-16 23:29:49 +00:00
StringPool.cpp StringPool: Cleanup typos in unittest comments 2014-12-15 01:04:49 +00:00
SwapByteOrderTest.cpp Unit tests for the getSwappedBytes(double) fix from r237673. 2015-05-20 14:57:43 +00:00
TargetRegistry.cpp Readdress r236990, use of static members on a non-static variable. 2015-05-11 22:20:48 +00:00
ThreadLocalTest.cpp ThreadLocal: Return a mutable pointer if templated with a non-const type 2014-12-15 01:04:45 +00:00
ThreadPool.cpp Add a C++11 ThreadPool implementation in LLVM 2015-12-15 00:59:19 +00:00
TimeValueTest.cpp
TrailingObjectsTest.cpp Fix Visual C++ error C2248: 2015-08-06 07:59:26 +00:00
UnicodeTest.cpp
YAMLIOTest.cpp Revert r239972 (YAML: Assign a value returned by the default constructor to the value in an optional mapping). 2015-06-17 23:48:06 +00:00
YAMLParserTest.cpp YAML: Null terminate block scalar's value. 2015-05-21 19:45:02 +00:00
formatted_raw_ostream_test.cpp
raw_ostream_test.cpp Teach raw_ostream to support hex formatting without a prefix '0x'. 2015-01-26 18:21:33 +00:00
raw_pwrite_stream_test.cpp Disable failing TestDevNull test on Windows 2015-04-29 16:54:11 +00:00