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

Method blockingAstMonitor

src/jrd/Attachment.cpp:993–1022  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

991}
992
993int 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
1024void Jrd::Attachment::SyncGuard::init(const char* f, bool
1025#ifdef DEV_BUILD

Callers

nothing calls this directly

Calls 2

iscLogExceptionFunction · 0.85
LCK_downgradeFunction · 0.85

Tested by

no test coverage detected