diff --git a/TGServerService/Config.cs b/TGServerService/Config.cs index d085c952c9..80c95d9bb4 100644 --- a/TGServerService/Config.cs +++ b/TGServerService/Config.cs @@ -407,7 +407,10 @@ namespace TGServerService try { error = null; - return Convert.ToUInt16(File.ReadAllText(InteropConfig)); + lock (configLock) + { + return Convert.ToUInt16(File.ReadAllText(InteropConfig)); + } } catch (Exception e) { diff --git a/TGServerService/Interop.cs b/TGServerService/Interop.cs index d59d8094b9..ee606c7a27 100644 --- a/TGServerService/Interop.cs +++ b/TGServerService/Interop.cs @@ -221,16 +221,17 @@ namespace TGServerService { try { - var handler = listener.EndAccept(asyncResult); + using (var handler = listener.EndAccept(asyncResult)) + { - var bytes = new byte[1024]; - int bytesRec = handler.Receive(bytes); - // Show the data on the console. - HandleCommand(Encoding.ASCII.GetString(bytes, 0, bytesRec)); - - handler.Shutdown(SocketShutdown.Both); - handler.Close(); - clientConnected.Set(); + var bytes = new byte[1024]; + int bytesRec = handler.Receive(bytes); + // Show the data on the console. + HandleCommand(Encoding.ASCII.GetString(bytes, 0, bytesRec)); + + handler.Close(); + clientConnected.Set(); + } } catch (ObjectDisposedException) { }