MCPcopy Create free account
hub / github.com/Snapchat/Valdi / guard

Method guard

valdi_core/src/valdi_core/cpp/Threading/ThreadAccessChecker.cpp:15–22  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13ThreadAccessChecker::ThreadAccessChecker() = default;
14
15ThreadAccessCheckerGuard ThreadAccessChecker::guard() {
16 auto currentThreadId = getCurrentThreadId();
17 auto previousThreadId = _threadIdWithCurrentAccess.exchange(currentThreadId);
18 SC_ABORT_UNLESS(previousThreadId == 0 || previousThreadId == currentThreadId,
19 "Unsafe multi-threaded access detected");
20
21 return ThreadAccessCheckerGuard(*this, previousThreadId);
22}
23
24ThreadAccessCheckerGuard::ThreadAccessCheckerGuard(ThreadAccessChecker& checker, ThreadId previousThreadId)
25 : _checker(checker), _previousThreadId(previousThreadId) {}

Callers 15

onInitializeMethod · 0.80
getGlobalObjectMethod · 0.80
preCompileMethod · 0.80
evaluatePreCompiledMethod · 0.80
evaluateMethod · 0.80
evaluateNativeMethod · 0.80
newPropertyNameMethod · 0.80
propertyNameToStringMethod · 0.80
newObjectMethod · 0.80
newFunctionMethod · 0.80

Calls 2

getCurrentThreadIdFunction · 0.85

Tested by

no test coverage detected