81 lines
2.1 KiB
C#
81 lines
2.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.Caching
|
|
{
|
|
// Token: 0x020020A2 RID: 8354
|
|
[Token(Token = "0x20020A2")]
|
|
internal sealed class HTTPCacheFileLock
|
|
{
|
|
// Token: 0x0600D236 RID: 53814 RVA: 0x003006D8 File Offset: 0x002FE8D8
|
|
[Token(Token = "0x600D236")]
|
|
[Address(RVA = "0x2411CF0", Offset = "0x2410CF0", VA = "0x182411CF0")]
|
|
internal static object Acquire(Uri uri)
|
|
{
|
|
for (;;)
|
|
{
|
|
int num = 0;
|
|
object syncRoot = HTTPCacheFileLock.SyncRoot;
|
|
int num2 = 0;
|
|
if (!HTTPCacheFileLock.FileLocks.TryGetValue(uri, num2))
|
|
{
|
|
break;
|
|
}
|
|
Monitor.Exit(syncRoot);
|
|
if (num == 0)
|
|
{
|
|
goto Block_1;
|
|
}
|
|
}
|
|
Dictionary<Uri, object> fileLocks = HTTPCacheFileLock.FileLocks;
|
|
object obj = new object();
|
|
throw new NullReferenceException();
|
|
Block_1:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600D237 RID: 53815 RVA: 0x00300728 File Offset: 0x002FE928
|
|
[Token(Token = "0x600D237")]
|
|
[Address(RVA = "0x2411FD0", Offset = "0x2410FD0", VA = "0x182411FD0")]
|
|
internal static void Remove(Uri uri)
|
|
{
|
|
object syncRoot = HTTPCacheFileLock.SyncRoot;
|
|
Dictionary<Uri, object> fileLocks = HTTPCacheFileLock.FileLocks;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600D238 RID: 53816 RVA: 0x00300770 File Offset: 0x002FE970
|
|
[Token(Token = "0x600D238")]
|
|
[Address(RVA = "0x2411EB0", Offset = "0x2410EB0", VA = "0x182411EB0")]
|
|
internal static void Clear()
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
object syncRoot = HTTPCacheFileLock.SyncRoot;
|
|
HTTPCacheFileLock.FileLocks.Clear();
|
|
Monitor.Exit(syncRoot);
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x0600D239 RID: 53817 RVA: 0x003007A0 File Offset: 0x002FE9A0
|
|
[Token(Token = "0x600D239")]
|
|
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
|
public HTTPCacheFileLock()
|
|
{
|
|
}
|
|
|
|
// Token: 0x040085B7 RID: 34231
|
|
[Token(Token = "0x40085B7")]
|
|
private static Dictionary<Uri, object> FileLocks = new Dictionary();
|
|
|
|
// Token: 0x040085B8 RID: 34232
|
|
[Token(Token = "0x40085B8")]
|
|
private static object SyncRoot = new object();
|
|
}
|
|
}
|