diff options
Diffstat (limited to '')
-rw-r--r-- | js/src/vm/MutexIDs.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/js/src/vm/MutexIDs.h b/js/src/vm/MutexIDs.h new file mode 100644 index 0000000000..0e84a48369 --- /dev/null +++ b/js/src/vm/MutexIDs.h @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef vm_MutexIDs_h +#define vm_MutexIDs_h + +#include "threading/Mutex.h" + +// Central definition point for mutex ordering. +// +// Mutexes can only be acquired in increasing order. This prevents the +// possibility of deadlock. Mutexes with the same order cannot be held +// at the same time. + +#define FOR_EACH_MUTEX(_) \ + _(TestMutex, 100) \ + _(ShellContextWatchdog, 100) \ + _(ShellWorkerThreads, 100) \ + _(ShellObjectMailbox, 100) \ + _(WellKnownParserAtomsInit, 100) \ + \ + _(WasmInitBuiltinThunks, 250) \ + _(WasmLazyStubsTier1, 250) \ + _(WasmLazyStubsTier2, 251) \ + \ + _(StoreBuffer, 275) \ + \ + _(GCLock, 300) \ + \ + _(GlobalHelperThreadState, 400) \ + \ + _(StringsCache, 500) \ + _(FutexThread, 500) \ + _(GeckoProfilerStrings, 500) \ + _(ProtectedRegionTree, 500) \ + _(ShellOffThreadState, 500) \ + _(ShellStreamCacheEntryState, 500) \ + _(SimulatorCacheLock, 500) \ + _(Arm64SimulatorLock, 500) \ + _(IonSpewer, 500) \ + _(PerfSpewer, 500) \ + _(CacheIRSpewer, 500) \ + _(DateTimeInfoMutex, 500) \ + _(ProcessExecutableRegion, 500) \ + _(BufferStreamState, 500) \ + _(SharedArrayGrow, 500) \ + _(SharedImmutableScriptData, 500) \ + _(WasmTypeIdSet, 500) \ + _(WasmCodeProfilingLabels, 500) \ + _(WasmCodeBytesEnd, 500) \ + _(WasmStreamEnd, 500) \ + _(WasmStreamStatus, 500) \ + _(WasmRuntimeInstances, 500) \ + _(WasmSignalInstallState, 500) \ + _(WasmHugeMemoryEnabled, 500) \ + _(MemoryTracker, 500) \ + _(StencilCache, 500) \ + _(SourceCompression, 500) \ + _(GCDelayedMarkingLock, 500) \ + \ + _(SharedImmutableStringsCache, 600) \ + _(IrregexpLazyStatic, 600) \ + _(ThreadId, 600) \ + _(WasmCodeSegmentMap, 600) \ + _(VTuneLock, 600) \ + _(ShellTelemetry, 600) + +namespace js { +namespace mutexid { + +#define DEFINE_MUTEX_ID(name, order) static const MutexId name{#name, order}; +FOR_EACH_MUTEX(DEFINE_MUTEX_ID) +#undef DEFINE_MUTEX_ID + +} // namespace mutexid +} // namespace js + +#endif // vm_MutexIDs_h |