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

Method probe_processes

src/lock/lock.cpp:2848–2877  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2846
2847
2848bool LockManager::probe_processes()
2849{
2850/**************************************
2851 *
2852 * p r o b e _ p r o c e s s e s
2853 *
2854 **************************************
2855 *
2856 * Functional description
2857 * Probe processes to see if any has died. If one has, get rid of it.
2858 *
2859 **************************************/
2860 ASSERT_ACQUIRED;
2861
2862 bool purged = false;
2863
2864 SRQ lock_srq;
2865 SRQ_LOOP(m_sharedMemory->getHeader()->lhb_processes, lock_srq)
2866 {
2867 prc* const process = (prc*) ((UCHAR*) lock_srq - offsetof(prc, prc_lhb_processes));
2868 if (process->prc_process_id != PID && !ISC_check_process_existence(process->prc_process_id))
2869 {
2870 lock_srq = SRQ_PREV((*lock_srq));
2871 purge_process(process);
2872 purged = true;
2873 }
2874 }
2875
2876 return purged;
2877}
2878
2879
2880void LockManager::purge_owner(SRQ_PTR purging_owner_offset, own* owner)

Callers

nothing calls this directly

Calls 2

getHeaderMethod · 0.45

Tested by

no test coverage detected