diff options
| author | 2020-08-03 15:06:44 +0000 | |
|---|---|---|
| committer | 2020-08-03 15:06:44 +0000 | |
| commit | b64793999546ed8adebaeebd9d8345d18db8927d (patch) | |
| tree | 4357c27b561d73b0e089727c6ed659f2ceff5f47 /gnu/llvm/lib/Support/ManagedStatic.cpp | |
| parent | Add support for UTF-8 DISPLAY-HINTs with octet length. For now only (diff) | |
| download | wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.tar.xz wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.zip | |
Remove LLVM 8.0.1 files.
Diffstat (limited to 'gnu/llvm/lib/Support/ManagedStatic.cpp')
| -rw-r--r-- | gnu/llvm/lib/Support/ManagedStatic.cpp | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/gnu/llvm/lib/Support/ManagedStatic.cpp b/gnu/llvm/lib/Support/ManagedStatic.cpp deleted file mode 100644 index 74f71a38502..00000000000 --- a/gnu/llvm/lib/Support/ManagedStatic.cpp +++ /dev/null @@ -1,85 +0,0 @@ -//===-- ManagedStatic.cpp - Static Global wrapper -------------------------===// -// -// 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 ManagedStatic class and llvm_shutdown(). -// -//===----------------------------------------------------------------------===// - -#include "llvm/Support/ManagedStatic.h" -#include "llvm/Config/config.h" -#include "llvm/Support/Mutex.h" -#include "llvm/Support/MutexGuard.h" -#include "llvm/Support/Threading.h" -#include <cassert> -using namespace llvm; - -static const ManagedStaticBase *StaticList = nullptr; -static sys::Mutex *ManagedStaticMutex = nullptr; -static llvm::once_flag mutex_init_flag; - -static void initializeMutex() { - ManagedStaticMutex = new sys::Mutex(); -} - -static sys::Mutex* getManagedStaticMutex() { - llvm::call_once(mutex_init_flag, initializeMutex); - return ManagedStaticMutex; -} - -void ManagedStaticBase::RegisterManagedStatic(void *(*Creator)(), - void (*Deleter)(void*)) const { - assert(Creator); - if (llvm_is_multithreaded()) { - MutexGuard Lock(*getManagedStaticMutex()); - - if (!Ptr.load(std::memory_order_relaxed)) { - void *Tmp = Creator(); - - Ptr.store(Tmp, std::memory_order_release); - DeleterFn = Deleter; - - // Add to list of managed statics. - Next = StaticList; - StaticList = this; - } - } else { - assert(!Ptr && !DeleterFn && !Next && - "Partially initialized ManagedStatic!?"); - Ptr = Creator(); - DeleterFn = Deleter; - - // Add to list of managed statics. - Next = StaticList; - StaticList = this; - } -} - -void ManagedStaticBase::destroy() const { - assert(DeleterFn && "ManagedStatic not initialized correctly!"); - assert(StaticList == this && - "Not destroyed in reverse order of construction?"); - // Unlink from list. - StaticList = Next; - Next = nullptr; - - // Destroy memory. - DeleterFn(Ptr); - - // Cleanup. - Ptr = nullptr; - DeleterFn = nullptr; -} - -/// llvm_shutdown - Deallocate and destroy all ManagedStatic variables. -void llvm::llvm_shutdown() { - MutexGuard Lock(*getManagedStaticMutex()); - - while (StaticList) - StaticList->destroy(); -} |
