mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-22 10:24:26 +00:00
Converting the JITDebugLock mutex to a ManagedStatic to avoid the static constructor and destructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218154 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -101,7 +101,7 @@ private:
|
|||||||
|
|
||||||
/// Lock used to serialize all jit registration events, since they
|
/// Lock used to serialize all jit registration events, since they
|
||||||
/// modify global variables.
|
/// modify global variables.
|
||||||
llvm::sys::Mutex JITDebugLock;
|
ManagedStatic<sys::Mutex> JITDebugLock;
|
||||||
|
|
||||||
/// Do the registration.
|
/// Do the registration.
|
||||||
void NotifyDebugger(jit_code_entry* JITCodeEntry) {
|
void NotifyDebugger(jit_code_entry* JITCodeEntry) {
|
||||||
@ -121,7 +121,7 @@ void NotifyDebugger(jit_code_entry* JITCodeEntry) {
|
|||||||
|
|
||||||
GDBJITRegistrar::~GDBJITRegistrar() {
|
GDBJITRegistrar::~GDBJITRegistrar() {
|
||||||
// Free all registered object files.
|
// Free all registered object files.
|
||||||
llvm::MutexGuard locked(JITDebugLock);
|
llvm::MutexGuard locked(*JITDebugLock);
|
||||||
for (RegisteredObjectBufferMap::iterator I = ObjectBufferMap.begin(), E = ObjectBufferMap.end();
|
for (RegisteredObjectBufferMap::iterator I = ObjectBufferMap.begin(), E = ObjectBufferMap.end();
|
||||||
I != E; ++I) {
|
I != E; ++I) {
|
||||||
// Call the private method that doesn't update the map so our iterator
|
// Call the private method that doesn't update the map so our iterator
|
||||||
@ -137,7 +137,7 @@ void GDBJITRegistrar::registerObject(const ObjectBuffer &Object) {
|
|||||||
size_t Size = Object.getBufferSize();
|
size_t Size = Object.getBufferSize();
|
||||||
|
|
||||||
assert(Buffer && "Attempt to register a null object with a debugger.");
|
assert(Buffer && "Attempt to register a null object with a debugger.");
|
||||||
llvm::MutexGuard locked(JITDebugLock);
|
llvm::MutexGuard locked(*JITDebugLock);
|
||||||
assert(ObjectBufferMap.find(Buffer) == ObjectBufferMap.end() &&
|
assert(ObjectBufferMap.find(Buffer) == ObjectBufferMap.end() &&
|
||||||
"Second attempt to perform debug registration.");
|
"Second attempt to perform debug registration.");
|
||||||
jit_code_entry* JITCodeEntry = new jit_code_entry();
|
jit_code_entry* JITCodeEntry = new jit_code_entry();
|
||||||
@ -156,7 +156,7 @@ void GDBJITRegistrar::registerObject(const ObjectBuffer &Object) {
|
|||||||
|
|
||||||
bool GDBJITRegistrar::deregisterObject(const ObjectBuffer& Object) {
|
bool GDBJITRegistrar::deregisterObject(const ObjectBuffer& Object) {
|
||||||
const char *Buffer = Object.getBufferStart();
|
const char *Buffer = Object.getBufferStart();
|
||||||
llvm::MutexGuard locked(JITDebugLock);
|
llvm::MutexGuard locked(*JITDebugLock);
|
||||||
RegisteredObjectBufferMap::iterator I = ObjectBufferMap.find(Buffer);
|
RegisteredObjectBufferMap::iterator I = ObjectBufferMap.find(Buffer);
|
||||||
|
|
||||||
if (I != ObjectBufferMap.end()) {
|
if (I != ObjectBufferMap.end()) {
|
||||||
|
Reference in New Issue
Block a user