MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / blockingAst

Method blockingAst

src/jrd/ProfilerManager.cpp:392–415  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

390}
391
392int ProfilerManager::blockingAst(void* astObject)
393{
394 const auto attachment = static_cast<Attachment*>(astObject);
395
396 try
397 {
398 const auto dbb = attachment->att_database;
399 AsyncContextHolder tdbb(dbb, FB_FUNCTION, attachment->att_profiler_listener_lock);
400
401 if (!(attachment->att_flags & ATT_shutdown))
402 {
403 const auto profilerManager = attachment->getProfilerManager(tdbb);
404
405 if (!profilerManager->listener)
406 profilerManager->listener = FB_NEW_POOL(*attachment->att_pool) ProfilerListener(tdbb);
407 }
408
409 LCK_release(tdbb, attachment->att_profiler_listener_lock);
410 }
411 catch (const Exception&)
412 {} // no-op
413
414 return 0;
415}
416
417SINT64 ProfilerManager::startSession(thread_db* tdbb, Nullable<SLONG> flushInterval,
418 const PathName& pluginName, const string& description, const string& options)

Callers

nothing calls this directly

Calls 3

ProfilerListenerClass · 0.85
LCK_releaseFunction · 0.85
getProfilerManagerMethod · 0.80

Tested by

no test coverage detected