MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / ~EventManager

Method ~EventManager

src/jrd/event.cpp:91–124  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

89
90
91EventManager::~EventManager()
92{
93 m_exiting = true;
94 const SLONG process_offset = m_processOffset;
95
96 LocalStatus ls;
97 CheckStatusWrapper localStatus(&ls);
98
99 if (m_process)
100 {
101 // Terminate the event watcher thread
102 m_startupSemaphore.tryEnter(5);
103 (void) m_sharedMemory->eventPost(&m_process->prb_event);
104 m_cleanupSync.waitForCompletion();
105
106#ifdef HAVE_OBJECT_MAP
107 m_sharedMemory->unmapObject(&localStatus, &m_process);
108#else
109 m_process = NULL;
110#endif
111 }
112
113 acquire_shmem();
114 m_processOffset = 0;
115 if (process_offset)
116 {
117 delete_process(process_offset);
118 }
119 if (m_sharedMemory->getHeader() && SRQ_EMPTY(m_sharedMemory->getHeader()->evh_processes))
120 {
121 m_sharedMemory->removeMapFile();
122 }
123 release_shmem();
124}
125
126
127void EventManager::init_shared_file()

Callers

nothing calls this directly

Calls 6

eventPostMethod · 0.80
removeMapFileMethod · 0.80
tryEnterMethod · 0.45
waitForCompletionMethod · 0.45
unmapObjectMethod · 0.45
getHeaderMethod · 0.45

Tested by

no test coverage detected