| 2846 | |
| 2847 | |
| 2848 | bool 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 | |
| 2880 | void LockManager::purge_owner(SRQ_PTR purging_owner_offset, own* owner) |
nothing calls this directly
no test coverage detected