mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-30 13:45:27 +00:00
Bug 1290220 - Switch the simulators over to js::Thread instead of PRThread; r=terrence
This commit is contained in:
parent
24273d1567
commit
8ae2b63edc
@ -368,16 +368,16 @@ class AutoLockSimulatorCache : public LockGuard<Mutex>
|
||||
: Base(sim->cacheLock_)
|
||||
, sim_(sim)
|
||||
{
|
||||
MOZ_ASSERT(!sim_->cacheLockHolder_);
|
||||
MOZ_ASSERT(sim_->cacheLockHolder_.isNothing());
|
||||
#ifdef DEBUG
|
||||
sim_->cacheLockHolder_ = PR_GetCurrentThread();
|
||||
sim_->cacheLockHolder_ = mozilla::Some(ThisThread::GetId());
|
||||
#endif
|
||||
}
|
||||
|
||||
~AutoLockSimulatorCache() {
|
||||
MOZ_ASSERT(sim_->cacheLockHolder_);
|
||||
MOZ_ASSERT(sim_->cacheLockHolder_.isSome());
|
||||
#ifdef DEBUG
|
||||
sim_->cacheLockHolder_ = nullptr;
|
||||
sim_->cacheLockHolder_.reset();
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -1128,9 +1128,6 @@ Simulator::Simulator()
|
||||
|
||||
lastDebuggerInput_ = nullptr;
|
||||
|
||||
#ifdef DEBUG
|
||||
cacheLockHolder_ = nullptr;
|
||||
#endif
|
||||
redirection_ = nullptr;
|
||||
exclusiveMonitorHeld_ = false;
|
||||
exclusiveMonitor_ = 0;
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "jit/arm/disasm/Disasm-arm.h"
|
||||
#include "jit/IonTypes.h"
|
||||
#include "threading/Mutex.h"
|
||||
#include "threading/Thread.h"
|
||||
|
||||
namespace js {
|
||||
namespace jit {
|
||||
@ -435,7 +436,7 @@ class Simulator
|
||||
// and by the off-thread compiler (see Redirection::Get in the cpp file).
|
||||
Mutex cacheLock_;
|
||||
#ifdef DEBUG
|
||||
PRThread* cacheLockHolder_;
|
||||
mozilla::Maybe<Thread::Id> cacheLockHolder_;
|
||||
#endif
|
||||
|
||||
Redirection* redirection_;
|
||||
@ -446,17 +447,17 @@ class Simulator
|
||||
// Technically we need the lock to access the innards of the
|
||||
// icache, not to take its address, but the latter condition
|
||||
// serves as a useful complement to the former.
|
||||
MOZ_ASSERT(cacheLockHolder_);
|
||||
MOZ_ASSERT(cacheLockHolder_.isSome());
|
||||
return icache_;
|
||||
}
|
||||
|
||||
Redirection* redirection() const {
|
||||
MOZ_ASSERT(cacheLockHolder_);
|
||||
MOZ_ASSERT(cacheLockHolder_.isSome());
|
||||
return redirection_;
|
||||
}
|
||||
|
||||
void setRedirection(js::jit::Redirection* redirection) {
|
||||
MOZ_ASSERT(cacheLockHolder_);
|
||||
MOZ_ASSERT(cacheLockHolder_.isSome());
|
||||
redirection_ = redirection;
|
||||
}
|
||||
|
||||
|
@ -496,16 +496,16 @@ class AutoLockSimulatorCache : public LockGuard<Mutex>
|
||||
: Base(sim->cacheLock_)
|
||||
, sim_(sim)
|
||||
{
|
||||
MOZ_ASSERT(!sim_->cacheLockHolder_);
|
||||
MOZ_ASSERT(sim_->cacheLockHolder_.isNothing());
|
||||
#ifdef DEBUG
|
||||
sim_->cacheLockHolder_ = PR_GetCurrentThread();
|
||||
sim_->cacheLockHolder_ = mozilla::Some(ThisThread::GetId());
|
||||
#endif
|
||||
}
|
||||
|
||||
~AutoLockSimulatorCache() {
|
||||
MOZ_ASSERT(sim_->cacheLockHolder_);
|
||||
MOZ_ASSERT(sim_->cacheLockHolder_.isSome());
|
||||
#ifdef DEBUG
|
||||
sim_->cacheLockHolder_ = nullptr;
|
||||
sim_->cacheLockHolder_.reset();
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -1277,9 +1277,6 @@ Simulator::Simulator()
|
||||
|
||||
lastDebuggerInput_ = nullptr;
|
||||
|
||||
#ifdef DEBUG
|
||||
cacheLockHolder_ = nullptr;
|
||||
#endif
|
||||
redirection_ = nullptr;
|
||||
}
|
||||
|
||||
|
@ -35,6 +35,7 @@
|
||||
|
||||
#include "jit/IonTypes.h"
|
||||
#include "threading/Mutex.h"
|
||||
#include "threading/Thread.h"
|
||||
|
||||
namespace js {
|
||||
namespace jit {
|
||||
@ -383,7 +384,7 @@ class Simulator {
|
||||
// and by the off-thread compiler (see Redirection::Get in the cpp file).
|
||||
Mutex cacheLock_;
|
||||
#ifdef DEBUG
|
||||
PRThread* cacheLockHolder_;
|
||||
mozilla::Maybe<Thread::Id> cacheLockHolder_;
|
||||
#endif
|
||||
|
||||
Redirection* redirection_;
|
||||
@ -394,17 +395,17 @@ class Simulator {
|
||||
// Technically we need the lock to access the innards of the
|
||||
// icache, not to take its address, but the latter condition
|
||||
// serves as a useful complement to the former.
|
||||
MOZ_ASSERT(cacheLockHolder_);
|
||||
MOZ_ASSERT(cacheLockHolder_.isSome());
|
||||
return icache_;
|
||||
}
|
||||
|
||||
Redirection* redirection() const {
|
||||
MOZ_ASSERT(cacheLockHolder_);
|
||||
MOZ_ASSERT(cacheLockHolder_.isSome());
|
||||
return redirection_;
|
||||
}
|
||||
|
||||
void setRedirection(js::jit::Redirection* redirection) {
|
||||
MOZ_ASSERT(cacheLockHolder_);
|
||||
MOZ_ASSERT(cacheLockHolder_.isSome());
|
||||
redirection_ = redirection;
|
||||
}
|
||||
};
|
||||
|
@ -534,16 +534,16 @@ class AutoLockSimulatorCache : public LockGuard<Mutex>
|
||||
: Base(sim->cacheLock_)
|
||||
, sim_(sim)
|
||||
{
|
||||
MOZ_ASSERT(!sim_->cacheLockHolder_);
|
||||
MOZ_ASSERT(sim_->cacheLockHolder_.isNothing());
|
||||
#ifdef DEBUG
|
||||
sim_->cacheLockHolder_ = PR_GetCurrentThread();
|
||||
sim_->cacheLockHolder_ = mozilla::Some(ThisThread::GetId());
|
||||
#endif
|
||||
}
|
||||
|
||||
~AutoLockSimulatorCache() {
|
||||
MOZ_ASSERT(sim_->cacheLockHolder_);
|
||||
MOZ_ASSERT(sim_->cacheLockHolder_.isSome());
|
||||
#ifdef DEBUG
|
||||
sim_->cacheLockHolder_ = nullptr;
|
||||
sim_->cacheLockHolder_.reset();
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -1291,9 +1291,6 @@ Simulator::Simulator()
|
||||
|
||||
lastDebuggerInput_ = nullptr;
|
||||
|
||||
#ifdef DEBUG
|
||||
cacheLockHolder_ = nullptr;
|
||||
#endif
|
||||
redirection_ = nullptr;
|
||||
}
|
||||
|
||||
|
@ -36,6 +36,7 @@
|
||||
|
||||
#include "jit/IonTypes.h"
|
||||
#include "threading/Mutex.h"
|
||||
#include "threading/Thread.h"
|
||||
|
||||
namespace js {
|
||||
namespace jit {
|
||||
@ -399,7 +400,7 @@ class Simulator {
|
||||
// and by the off-thread compiler (see Redirection::Get in the cpp file).
|
||||
Mutex cacheLock_;
|
||||
#ifdef DEBUG
|
||||
PRThread* cacheLockHolder_;
|
||||
mozilla::Maybe<Thread::Id> cacheLockHolder_;
|
||||
#endif
|
||||
|
||||
Redirection* redirection_;
|
||||
@ -410,17 +411,17 @@ class Simulator {
|
||||
// Technically we need the lock to access the innards of the
|
||||
// icache, not to take its address, but the latter condition
|
||||
// serves as a useful complement to the former.
|
||||
MOZ_ASSERT(cacheLockHolder_);
|
||||
MOZ_ASSERT(cacheLockHolder_.isSome());
|
||||
return icache_;
|
||||
}
|
||||
|
||||
Redirection* redirection() const {
|
||||
MOZ_ASSERT(cacheLockHolder_);
|
||||
MOZ_ASSERT(cacheLockHolder_.isSome());
|
||||
return redirection_;
|
||||
}
|
||||
|
||||
void setRedirection(js::jit::Redirection* redirection) {
|
||||
MOZ_ASSERT(cacheLockHolder_);
|
||||
MOZ_ASSERT(cacheLockHolder_.isSome());
|
||||
redirection_ = redirection;
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user