using System.Collections.Generic; using Codice.Client.Common.Threading; namespace Unity.PlasticSCM.Editor.UI { internal static class ThreadWaiterRegistry { internal static void Register(IThreadWaiter waiter) { lock (mLock) { mRunningWaiters.Add(waiter); } } internal static void Unregister(IThreadWaiter waiter) { lock (mLock) { mRunningWaiters.Remove(waiter); } } internal static bool HasRunningOperations() { lock (mLock) { return mRunningWaiters.Count > 0; } } internal static int GetRunningOperationsCount() { lock (mLock) { return mRunningWaiters.Count; } } static readonly object mLock = new object(); static readonly HashSet mRunningWaiters = new HashSet(); } }