mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 06:11:37 +00:00
Bug 1502207 Part 1 - Specify the address of atomic values when recording ordered atomic accesses, r=froydnj.
--HG-- extra : rebase_source : 3260b427eeac3cc44d6e74df1a6da366da85aeda
This commit is contained in:
parent
5f7f645601
commit
55571f2bbf
@ -42,7 +42,7 @@ namespace recordreplay {
|
||||
Macro(DefineRecordReplayControlObject, bool, (JSContext* aCx, JSObject* aObj), (aCx, aObj))
|
||||
|
||||
#define FOR_EACH_INTERFACE_VOID(Macro) \
|
||||
Macro(InternalBeginOrderedAtomicAccess, (), ()) \
|
||||
Macro(InternalBeginOrderedAtomicAccess, (const void* aValue), (aValue)) \
|
||||
Macro(InternalEndOrderedAtomicAccess, (), ()) \
|
||||
Macro(InternalBeginPassThroughThreadEvents, (), ()) \
|
||||
Macro(InternalEndPassThroughThreadEvents, (), ()) \
|
||||
|
@ -103,15 +103,16 @@ static inline bool IsMiddleman() { return false; }
|
||||
|
||||
// Mark a region which occurs atomically wrt the recording. No two threads can
|
||||
// be in an atomic region at once, and the order in which atomic sections are
|
||||
// executed by the various threads will be the same in the replay as in the
|
||||
// recording. These calls have no effect when not recording/replaying.
|
||||
static inline void BeginOrderedAtomicAccess();
|
||||
// executed by the various threads for the same aValue will be the same in the
|
||||
// replay as in the recording. These calls have no effect when not recording or
|
||||
// replaying.
|
||||
static inline void BeginOrderedAtomicAccess(const void* aValue);
|
||||
static inline void EndOrderedAtomicAccess();
|
||||
|
||||
// RAII class for an atomic access.
|
||||
struct MOZ_RAII AutoOrderedAtomicAccess
|
||||
{
|
||||
AutoOrderedAtomicAccess() { BeginOrderedAtomicAccess(); }
|
||||
explicit AutoOrderedAtomicAccess(const void* aValue) { BeginOrderedAtomicAccess(aValue); }
|
||||
~AutoOrderedAtomicAccess() { EndOrderedAtomicAccess(); }
|
||||
};
|
||||
|
||||
@ -430,7 +431,7 @@ NoteContentParse16(const void* aToken,
|
||||
|
||||
#endif
|
||||
|
||||
MOZ_MakeRecordReplayWrapperVoid(BeginOrderedAtomicAccess, (), ())
|
||||
MOZ_MakeRecordReplayWrapperVoid(BeginOrderedAtomicAccess, (const void* aValue), (aValue))
|
||||
MOZ_MakeRecordReplayWrapperVoid(EndOrderedAtomicAccess, (), ())
|
||||
MOZ_MakeRecordReplayWrapperVoid(BeginPassThroughThreadEvents, (), ())
|
||||
MOZ_MakeRecordReplayWrapperVoid(EndPassThroughThreadEvents, (), ())
|
||||
|
Loading…
Reference in New Issue
Block a user