FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
DirectXShaderCompiler/lib/Support/ThreadLocal.cpp at main · microsoft/DirectXShaderCompiler · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
microsoft
/
DirectXShaderCompiler
Public
Notifications
You must be signed in to change notification settings
Fork
897
Star
3.6k
Code
Issues
654
Pull requests
141
Discussions
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Discussions
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
DirectXShaderCompiler
/
lib
/
Support
/
ThreadLocal.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
48 lines (45 loc) · 1.66 KB
Breadcrumbs
DirectXShaderCompiler
/
lib
/
Support
/
ThreadLocal.cpp
Copy path
File metadata and controls
48 lines (45 loc) · 1.66 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//
===- ThreadLocal.cpp - Thread Local Data ----------------------*- C++ -*-===//
//
//
The LLVM Compiler Infrastructure
//
//
This file is distributed under the University of Illinois Open Source
//
License. See LICENSE.TXT for details.
//
//
===----------------------------------------------------------------------===//
//
//
This file implements the llvm::sys::ThreadLocal class.
//
//
===----------------------------------------------------------------------===//
#
include
"
llvm/Config/config.h
"
#
include
"
llvm/Support/Compiler.h
"
#
include
"
llvm/Support/ThreadLocal.h
"
//
===----------------------------------------------------------------------===//
//
=== WARNING: Implementation here must contain only TRULY operating system
//
=== independent code.
//
===----------------------------------------------------------------------===//
#
if
!defined(LLVM_ENABLE_THREADS) || LLVM_ENABLE_THREADS == 0
//
Define all methods as no-ops if threading is explicitly disabled
namespace
llvm
{
using
namespace
sys
;
ThreadLocalImpl::ThreadLocalImpl
() : data() { }
ThreadLocalImpl::~ThreadLocalImpl
() { }
void
ThreadLocalImpl::setInstance
(
const
void
* d) {
static_assert
(
sizeof
(d) <=
sizeof
(data),
"
size too big
"
);
void
**pd =
reinterpret_cast
<
void
**>(&data);
*pd =
const_cast
<
void
*>(d);
}
void
*
ThreadLocalImpl::getInstance
() {
void
**pd =
reinterpret_cast
<
void
**>(&data);
return
*pd;
}
void
ThreadLocalImpl::removeInstance
() {
setInstance
(
nullptr
);
}
}
#
elif
defined(LLVM_ON_UNIX)
#
include
"
Unix/ThreadLocal.inc
"
#
elif
defined( LLVM_ON_WIN32)
#
include
"
Windows/ThreadLocal.inc
"
#
else
#
warning
Neither LLVM_ON_UNIX nor LLVM_ON_WIN32 set in Support/ThreadLocal.cpp
#
endif
Back
|
FazBrowse Home
|
New Git URL