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

Method invalidateReplSet

src/jrd/Attachment.cpp:1155–1181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1153}
1154
1155void Attachment::invalidateReplSet(thread_db* tdbb, bool broadcast)
1156{
1157 if (broadcast)
1158 {
1159 // Signal other attachments about the changed state
1160 if (att_repl_lock->lck_logical == LCK_none)
1161 LCK_lock(tdbb, att_repl_lock, LCK_EX, LCK_WAIT);
1162 else
1163 LCK_convert(tdbb, att_repl_lock, LCK_EX, LCK_WAIT);
1164 }
1165
1166 if (att_flags & ATT_repl_reset)
1167 return;
1168
1169 att_flags |= ATT_repl_reset;
1170
1171 if (att_relations)
1172 {
1173 for (auto relation : *att_relations)
1174 {
1175 if (relation)
1176 relation->rel_repl_state.invalidate();
1177 }
1178 }
1179
1180 LCK_release(tdbb, att_repl_lock);
1181}
1182
1183int Attachment::blockingAstReplSet(void* ast_object)
1184{

Callers 1

blockingAstReplSetMethod · 0.80

Calls 4

LCK_lockFunction · 0.85
LCK_convertFunction · 0.85
LCK_releaseFunction · 0.85
invalidateMethod · 0.45

Tested by

no test coverage detected