MCPcopy Create free account
hub / github.com/GaijinEntertainment/daScript / installThreadLocalDebugAgent

Function installThreadLocalDebugAgent

src/runtime/context.cpp:864–877  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

862 }
863
864 void installThreadLocalDebugAgent ( DebugAgentPtr newAgent, LineInfoArg * at, Context * context ) {
865 if ( *daScriptEnvironment::g_threadLocalDebugAgent && (*daScriptEnvironment::g_threadLocalDebugAgent)->debugAgent ) {
866 context->throw_error_at(at, "thread local debug agent already installed");
867 }
868 std::lock_guard<std::recursive_mutex> guard(g_DebugAgentMutex);
869 (*daScriptEnvironment::g_threadLocalDebugAgent) = new DebugAgentInstance{
870 debugAgentContextOrNull(context),
871 newAgent
872 };
873 DebugAgent * newAgentPtr = newAgent.get();
874 for_each_debug_agent([newAgentPtr](DebugAgentPtr agent){
875 agent->onInstall(newAgentPtr);
876 });
877 }
878
879 void installDebugAgent ( DebugAgentPtr newAgent, const char * category, LineInfoArg * at, Context * context ) {
880 if ( !category ) context->throw_error_at(at, "need to specify category");

Callers

nothing calls this directly

Calls 5

debugAgentContextOrNullFunction · 0.85
for_each_debug_agentFunction · 0.85
throw_error_atMethod · 0.80
getMethod · 0.45
onInstallMethod · 0.45

Tested by

no test coverage detected