From def5ea19c22d75ea42d8d1ce5dc26574cb75ccc3 Mon Sep 17 00:00:00 2001 From: Cinder Roxley Date: Sun, 30 Jun 2024 08:41:43 -0500 Subject: [PATCH] Address Issue #80 packetInbox/packetOutbox may already be destroyed before NetworkManager.Shutdown() is called. The very obvious fragility of the code is an issue, but we'll slap a bandaid on there. --- LibreMetaverse/NetworkManager.cs | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/LibreMetaverse/NetworkManager.cs b/LibreMetaverse/NetworkManager.cs index c1826933..a1af80fd 100644 --- a/LibreMetaverse/NetworkManager.cs +++ b/LibreMetaverse/NetworkManager.cs @@ -559,16 +559,16 @@ namespace OpenMetaverse return Connect(endPoint, handle, setDefault, seedcaps, sizeX, sizeY); } - /// - /// Connect to simulator assuming legacy region size - /// - /// - /// - /// - /// - /// - public Simulator Connect(IPEndPoint endPoint, ulong handle, bool setDefault, Uri seedcaps) { - return Connect(endPoint, handle, setDefault, seedcaps, Simulator.DefaultRegionSizeX, Simulator.DefaultRegionSizeY); + /// + /// Connect to simulator assuming legacy region size + /// + /// + /// + /// + /// + /// + public Simulator Connect(IPEndPoint endPoint, ulong handle, bool setDefault, Uri seedcaps) { + return Connect(endPoint, handle, setDefault, seedcaps, Simulator.DefaultRegionSizeX, Simulator.DefaultRegionSizeY); } /// /// Connect to a simulator @@ -892,10 +892,14 @@ namespace OpenMetaverse OnSimDisconnected(new SimDisconnectedEventArgs(CurrentSim, type)); } } - - _packetInbox.Writer.Complete(); - _packetOutbox.Writer.Complete(); + try + { + _packetInbox.Writer.Complete(); + _packetOutbox.Writer.Complete(); + } + catch (NullReferenceException) + { /* noop! */ } _packetInbox = null; _packetOutbox = null;