| 390 | } |
| 391 | |
| 392 | int 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 | |
| 417 | SINT64 ProfilerManager::startSession(thread_db* tdbb, Nullable<SLONG> flushInterval, |
| 418 | const PathName& pluginName, const string& description, const string& options) |
nothing calls this directly
no test coverage detected