diff --git a/OpenMetaverse/GridClient.cs b/OpenMetaverse/GridClient.cs index f17e7b47..c7d280c8 100644 --- a/OpenMetaverse/GridClient.cs +++ b/OpenMetaverse/GridClient.cs @@ -108,8 +108,11 @@ namespace OpenMetaverse /// public GridClient() { - // Initialise ThreadPool - WorkPool.Init(true); + // Initialise SmartThreadPool when using mono + if (Type.GetType("Mono.Runtime") != null) + { + WorkPool.Init(true); + } // These are order-dependant Network = new NetworkManager(this); diff --git a/OpenMetaverseTypes/WorkPool.cs b/OpenMetaverseTypes/WorkPool.cs index 6b64cda4..66bf09c8 100644 --- a/OpenMetaverseTypes/WorkPool.cs +++ b/OpenMetaverseTypes/WorkPool.cs @@ -62,8 +62,11 @@ namespace OpenMetaverse public static void Shutdown() { - Pool.Shutdown(); - Pool = null; + if (Pool != null) + { + Pool.Shutdown(); + Pool = null; + } } public static void QueueUserWorkItem(System.Threading.WaitCallback callback)