Skip to content

Commit 1efadbb

Browse files
Lock m_event_handle_map_sync in Destroy() (#721)
1 parent 837eb35 commit 1efadbb

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

ecal/core/src/io/ecal_memfile_sync.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -127,17 +127,20 @@ namespace eCAL
127127
// do not clear the map, because we will use
128128
// the map keys (process id's) to recreate the
129129
// events in a subsequent CreateMemFile call
130-
for (auto iter = m_event_handle_map.begin(); iter != m_event_handle_map.end(); ++iter)
131130
{
132-
gCloseEvent(iter->second.event_snd);
133-
gInvalidateEvent(&iter->second.event_snd);
134-
if (m_timeout_ack != 0)
131+
std::lock_guard<std::mutex> lock(m_event_handle_map_sync);
132+
for (auto iter = m_event_handle_map.begin(); iter != m_event_handle_map.end(); ++iter)
135133
{
136-
gCloseEvent(iter->second.event_ack);
137-
gInvalidateEvent(&iter->second.event_ack);
134+
gCloseEvent(iter->second.event_snd);
135+
gInvalidateEvent(&iter->second.event_snd);
136+
if (m_timeout_ack != 0)
137+
{
138+
gCloseEvent(iter->second.event_ack);
139+
gInvalidateEvent(&iter->second.event_ack);
140+
}
138141
}
139142
}
140-
143+
141144
// destroy the file
142145
if (!m_memfile.Destroy(true))
143146
{

0 commit comments

Comments
 (0)