using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Threading; using Cpp2IlInjected; namespace BestHTTP.Caching { // Token: 0x020019E5 RID: 6629 [Token(Token = "0x20019E5")] [StructLayout(3)] internal sealed class HTTPCacheFileLock { // Token: 0x0600B28E RID: 45710 RVA: 0x0029FA98 File Offset: 0x0029DC98 [Token(Token = "0x600B28E")] [Address(RVA = "0x1F0DC30", Offset = "0x1F0C630", VA = "0x181F0DC30")] internal static object Acquire(Uri uri) { int num; do { num = 0; object syncRoot = HTTPCacheFileLock.SyncRoot; int num2 = 0; if (!HTTPCacheFileLock.FileLocks.TryGetValue(uri, num2)) { Dictionary fileLocks = HTTPCacheFileLock.FileLocks; object obj = new object(); fileLocks.Add(uri, obj); } Monitor.Exit(syncRoot); if (num != -1) { } } while (num != 0); throw new NullReferenceException(); } // Token: 0x0600B28F RID: 45711 RVA: 0x0029FAF0 File Offset: 0x0029DCF0 [Token(Token = "0x600B28F")] [Address(RVA = "0x1F0DF70", Offset = "0x1F0C970", VA = "0x181F0DF70")] internal static void Remove(Uri uri) { int num; do { num = 0; object syncRoot = HTTPCacheFileLock.SyncRoot; if (HTTPCacheFileLock.FileLocks.ContainsKey(uri)) { bool flag = HTTPCacheFileLock.FileLocks.Remove(uri); } Monitor.Exit(syncRoot); if (num != -1) { } } while (num != 0); } // Token: 0x0600B290 RID: 45712 RVA: 0x0029FB3C File Offset: 0x0029DD3C [Token(Token = "0x600B290")] [Address(RVA = "0x1F0DE30", Offset = "0x1F0C830", VA = "0x181F0DE30")] internal static void Clear() { int num; do { num = 0; object syncRoot = HTTPCacheFileLock.SyncRoot; HTTPCacheFileLock.FileLocks.Clear(); Monitor.Exit(syncRoot); if (num != -1) { } } while (num != 0); } // Token: 0x0600B291 RID: 45713 RVA: 0x0029FB70 File Offset: 0x0029DD70 [Token(Token = "0x600B291")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public HTTPCacheFileLock() { } // Token: 0x040075BB RID: 30139 [Token(Token = "0x40075BB")] private static Dictionary FileLocks = new Dictionary(); // Token: 0x040075BC RID: 30140 [Token(Token = "0x40075BC")] private static object SyncRoot = new object(); } }