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

Function forceWriteLock

src/dsql/StmtNodes.cpp:10696–10707  ·  view source on GitHub ↗

Try to set write lock on record until success or record exists

Source from the content-addressed store, hash-verified

10694
10695// Try to set write lock on record until success or record exists
10696static void forceWriteLock(thread_db* tdbb, record_param* rpb, jrd_tra* transaction)
10697{
10698 while (VIO_refetch_record(tdbb, rpb, transaction, true, true))
10699 {
10700 rpb->rpb_runtime_flags &= ~RPB_refetch;
10701
10702 // VIO_writelock returns false if record has been deleted or modified
10703 // by someone else.
10704 if (VIO_writelock(tdbb, rpb, transaction) == WriteLockResult::LOCKED)
10705 break;
10706 }
10707}
10708
10709// Build a validation list for a relation, if appropriate.
10710static void makeValidation(thread_db* tdbb, CompilerScratch* csb, StreamType stream,

Callers 2

eraseMethod · 0.85
modifyMethod · 0.85

Calls 2

VIO_refetch_recordFunction · 0.85
VIO_writelockFunction · 0.85

Tested by

no test coverage detected