зеркало из https://github.com/mozilla/gecko-dev.git
Bug 956899 - Replace PRLock with Mutex in TraceLogger; r=h4writer
--HG-- extra : rebase_source : ce25db425ac6024eecb40848de141c7f25769ab4
This commit is contained in:
Родитель
ec791cf10a
Коммит
fd33957a9b
|
@ -16,6 +16,7 @@
|
|||
|
||||
#include "jit/BaselineJIT.h"
|
||||
#include "jit/CompileWrappers.h"
|
||||
#include "threading/LockGuard.h"
|
||||
#include "vm/Runtime.h"
|
||||
#include "vm/Time.h"
|
||||
#include "vm/TraceLoggingGraph.h"
|
||||
|
@ -83,24 +84,6 @@ rdtsc(void)
|
|||
|
||||
#endif // defined(MOZ_HAVE_RDTSC)
|
||||
|
||||
class AutoTraceLoggerThreadStateLock
|
||||
{
|
||||
TraceLoggerThreadState* logging;
|
||||
|
||||
public:
|
||||
explicit AutoTraceLoggerThreadStateLock(TraceLoggerThreadState* logging MOZ_GUARD_OBJECT_NOTIFIER_PARAM)
|
||||
: logging(logging)
|
||||
{
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_INIT;
|
||||
PR_Lock(logging->lock);
|
||||
}
|
||||
~AutoTraceLoggerThreadStateLock() {
|
||||
PR_Unlock(logging->lock);
|
||||
}
|
||||
private:
|
||||
MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER
|
||||
};
|
||||
|
||||
static bool
|
||||
EnsureTraceLoggerState()
|
||||
{
|
||||
|
@ -620,11 +603,6 @@ TraceLoggerThreadState::~TraceLoggerThreadState()
|
|||
threadLoggers.finish();
|
||||
}
|
||||
|
||||
if (lock) {
|
||||
PR_DestroyLock(lock);
|
||||
lock = nullptr;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
initialized = false;
|
||||
#endif
|
||||
|
@ -646,10 +624,6 @@ ContainsFlag(const char* str, const char* flag)
|
|||
bool
|
||||
TraceLoggerThreadState::init()
|
||||
{
|
||||
lock = PR_NewLock();
|
||||
if (!lock)
|
||||
return false;
|
||||
|
||||
if (!threadLoggers.init())
|
||||
return false;
|
||||
|
||||
|
@ -875,7 +849,7 @@ TraceLoggerThreadState::forMainThread(PerThreadData* mainThread)
|
|||
{
|
||||
MOZ_ASSERT(initialized);
|
||||
if (!mainThread->traceLogger) {
|
||||
AutoTraceLoggerThreadStateLock lock(this);
|
||||
LockGuard<Mutex> guard(lock);
|
||||
|
||||
TraceLoggerThread* logger = create();
|
||||
if (!logger)
|
||||
|
@ -912,7 +886,7 @@ TraceLoggerThreadState::forThread(PRThread* thread)
|
|||
{
|
||||
MOZ_ASSERT(initialized);
|
||||
|
||||
AutoTraceLoggerThreadStateLock lock(this);
|
||||
LockGuard<Mutex> guard(lock);
|
||||
|
||||
ThreadLoggerHashMap::AddPtr p = threadLoggers.lookupForAdd(thread);
|
||||
if (p)
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "js/HashTable.h"
|
||||
#include "js/TypeDecls.h"
|
||||
#include "js/Vector.h"
|
||||
#include "threading/Mutex.h"
|
||||
#include "vm/TraceLoggingGraph.h"
|
||||
#include "vm/TraceLoggingTypes.h"
|
||||
|
||||
|
@ -311,7 +312,7 @@ class TraceLoggerThreadState
|
|||
|
||||
public:
|
||||
uint64_t startupTime;
|
||||
PRLock* lock;
|
||||
Mutex lock;
|
||||
|
||||
TraceLoggerThreadState()
|
||||
:
|
||||
|
@ -320,8 +321,7 @@ class TraceLoggerThreadState
|
|||
#endif
|
||||
mainThreadEnabled(false),
|
||||
offThreadEnabled(false),
|
||||
graphSpewingEnabled(false),
|
||||
lock(nullptr)
|
||||
graphSpewingEnabled(false)
|
||||
{ }
|
||||
|
||||
bool init();
|
||||
|
|
Загрузка…
Ссылка в новой задаче