@@ -148,6 +148,10 @@ public static void SendMessageTo(MessageBase message, ulong target)
148148 {
149149 if ( ! MyAPIGateway . Multiplayer . IsServer )
150150 throw new Exception ( "Only server can send targeted messages" ) ;
151+
152+ if ( _closing )
153+ return ;
154+
151155 message . Target = target ;
152156 message . TargetType = MessageTarget . Single ;
153157 MyLog . Default . WriteLineAndConsole ( $ "Sending message of type { message . GetType ( ) . FullName } ") ;
@@ -159,15 +163,23 @@ public static void SendMessageToClients(MessageBase message)
159163 {
160164 if ( ! MyAPIGateway . Multiplayer . IsServer )
161165 throw new Exception ( "Only server can send targeted messages" ) ;
166+
167+ if ( _closing )
168+ return ;
169+
162170 message . TargetType = MessageTarget . AllClients ;
163171 _outgoing . Enqueue ( message ) ;
164172 ReleaseLock ( ) ;
165173 }
166174
167175 public static void SendMessageExcept ( MessageBase message , params ulong [ ] ignoredUsers )
168176 {
169- if ( MyAPIGateway . Multiplayer . IsServer )
177+ if ( ! MyAPIGateway . Multiplayer . IsServer )
170178 throw new Exception ( "Only server can send targeted messages" ) ;
179+
180+ if ( _closing )
181+ return ;
182+
171183 message . TargetType = MessageTarget . AllExcept ;
172184 message . Ignore = ignoredUsers ;
173185 _outgoing . Enqueue ( message ) ;
@@ -176,27 +188,26 @@ public static void SendMessageExcept(MessageBase message, params ulong[] ignored
176188
177189 public static void SendMessageToServer ( MessageBase message )
178190 {
191+ if ( _closing )
192+ return ;
193+
179194 message . TargetType = MessageTarget . Server ;
180195 _outgoing . Enqueue ( message ) ;
181196 ReleaseLock ( ) ;
182197 }
183198
184199 private static void ReleaseLock ( )
185200 {
186- if ( _lock == null )
187- return ;
188- while ( ! _lock . TryAcquireExclusive ( ) )
189- _lock . ReleaseExclusive ( ) ;
190- _lock . ReleaseExclusive ( ) ;
201+ while ( _lock ? . TryAcquireExclusive ( ) == false )
202+ _lock ? . ReleaseExclusive ( ) ;
203+ _lock ? . ReleaseExclusive ( ) ;
191204 }
192205
193206 private static void AcquireLock ( )
194207 {
195- if ( _lock == null )
196- return ;
197208 ReleaseLock ( ) ;
198- _lock . AcquireExclusive ( ) ;
199- _lock . AcquireExclusive ( ) ;
209+ _lock ? . AcquireExclusive ( ) ;
210+ _lock ? . AcquireExclusive ( ) ;
200211 }
201212 }
202213}
0 commit comments