| 991 | } |
| 992 | |
| 993 | int Jrd::Attachment::blockingAstMonitor(void* ast_object) |
| 994 | { |
| 995 | const auto attachment = static_cast<Jrd::Attachment*>(ast_object); |
| 996 | |
| 997 | try |
| 998 | { |
| 999 | const auto dbb = attachment->att_database; |
| 1000 | |
| 1001 | AsyncContextHolder tdbb(dbb, FB_FUNCTION, attachment->att_monitor_lock); |
| 1002 | |
| 1003 | if (const auto generation = Monitoring::checkGeneration(dbb, attachment)) |
| 1004 | { |
| 1005 | try |
| 1006 | { |
| 1007 | Monitoring::dumpAttachment(tdbb, attachment, generation); |
| 1008 | } |
| 1009 | catch (const Exception& ex) |
| 1010 | { |
| 1011 | iscLogException("Cannot dump the monitoring data", ex); |
| 1012 | } |
| 1013 | } |
| 1014 | |
| 1015 | LCK_downgrade(tdbb, attachment->att_monitor_lock); |
| 1016 | attachment->att_flags |= ATT_monitor_disabled; |
| 1017 | } |
| 1018 | catch (const Exception&) |
| 1019 | {} // no-op |
| 1020 | |
| 1021 | return 0; |
| 1022 | } |
| 1023 | |
| 1024 | void Jrd::Attachment::SyncGuard::init(const char* f, bool |
| 1025 | #ifdef DEV_BUILD |
nothing calls this directly
no test coverage detected