File tree Expand file tree Collapse file tree 1 file changed +19
-11
lines changed
Expand file tree Collapse file tree 1 file changed +19
-11
lines changed Original file line number Diff line number Diff line change @@ -280,22 +280,30 @@ Match::EventSend(const PlayerSocket& caller, const std::string& xml)
280280 default :
281281 throw MutexError (" Win7::Match::EventSend(): An error occured waiting for mutex: " + std::to_string (GetLastError ()));
282282 }
283- const std::vector<QueuedEvent> events = ProcessEvent (*elEvent, caller);
284- for (const QueuedEvent& ev : events)
283+ try
285284 {
286- if (!ev.xml .empty ())
285+ const std::vector<QueuedEvent> events = ProcessEvent (*elEvent, caller);
286+ for (const QueuedEvent& ev : events)
287287 {
288- const bool includeSender = ev.includeSender && ev.xmlSender .empty ();
289- for (const PlayerSocket* p : m_players)
288+ if (!ev.xml .empty ())
290289 {
291- if (includeSender || p != &caller)
292- p->OnEventReceive (ev.xml );
290+ const bool includeSender = ev.includeSender && ev.xmlSender .empty ();
291+ for (const PlayerSocket* p : m_players)
292+ {
293+ if (includeSender || p != &caller)
294+ p->OnEventReceive (ev.xml );
295+ }
296+ }
297+ if (!ev.xmlSender .empty ())
298+ {
299+ caller.OnEventReceive (ev.xmlSender );
293300 }
294301 }
295- if (!ev.xmlSender .empty ())
296- {
297- caller.OnEventReceive (ev.xmlSender );
298- }
302+ }
303+ catch (...)
304+ {
305+ ReleaseMutex (m_mutex);
306+ throw ;
299307 }
300308 if (!ReleaseMutex (m_mutex))
301309 throw MutexError (" Win7::Match::EventSend(): Couldn't release mutex: " + std::to_string (GetLastError ()));
You can’t perform that action at this time.
0 commit comments