LLVM
4.0.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
llvm.src
include
llvm
Support
thread.h
Go to the documentation of this file.
1
//===-- llvm/Support/thread.h - Wrapper for <thread> ------------*- C++ -*-===//
2
//
3
// The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
//
10
// This header is a wrapper for <thread> that works around problems with the
11
// MSVC headers when exceptions are disabled. It also provides llvm::thread,
12
// which is either a typedef of std::thread or a replacement that calls the
13
// function synchronously depending on the value of LLVM_ENABLE_THREADS.
14
//
15
//===----------------------------------------------------------------------===//
16
17
#ifndef LLVM_SUPPORT_THREAD_H
18
#define LLVM_SUPPORT_THREAD_H
19
20
#include "llvm/Config/llvm-config.h"
21
22
#if LLVM_ENABLE_THREADS
23
24
#ifdef _MSC_VER
25
// concrt.h depends on eh.h for __uncaught_exception declaration
26
// even if we disable exceptions.
27
#include <eh.h>
28
29
// Suppress 'C++ exception handler used, but unwind semantics are not enabled.'
30
#pragma warning(push)
31
#pragma warning(disable:4530)
32
#endif
33
34
#include <thread>
35
36
#ifdef _MSC_VER
37
#pragma warning(pop)
38
#endif
39
40
namespace
llvm {
41
typedef
std::thread
thread
;
42
}
43
44
#else // !LLVM_ENABLE_THREADS
45
46
#include <utility>
47
48
namespace
llvm {
49
50
struct
thread
{
51
thread
() {}
52
thread
(
thread
&&other) {}
53
template
<
class
Function,
class
...
Args
>
54
explicit
thread
(Function &&f,
Args
&&... args) {
55
f(std::forward<Args>(args)...);
56
}
57
thread
(
const
thread
&) =
delete
;
58
59
void
join
() {}
60
static
unsigned
hardware_concurrency() {
return
1; };
61
};
62
63
}
64
65
#endif // LLVM_ENABLE_THREADS
66
67
#endif
llvm::join
std::string join(IteratorT Begin, IteratorT End, StringRef Separator)
Joins the strings in the range [Begin, End), adding Separator between the elements.
Definition:
StringExtras.h:232
AMDGPU::RuntimeMD::KeyName::Args
const char Args[]
Definition:
AMDGPURuntimeMetadata.h:54
llvm::thread
std::thread thread
Definition:
thread.h:41
Generated on Wed Mar 8 2017 17:29:51 for LLVM by
1.8.6