You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.0 KiB
C#
44 lines
1.0 KiB
C#
#if !BESTHTTP_DISABLE_CACHING && (!UNITY_WEBGL || UNITY_EDITOR)
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace BestHTTP.Caching
|
|
{
|
|
sealed class HTTPCacheFileLock
|
|
{
|
|
private static Dictionary<Uri, object> FileLocks = new Dictionary<Uri, object>();
|
|
private static object SyncRoot = new object();
|
|
|
|
internal static object Acquire(Uri uri)
|
|
{
|
|
lock (SyncRoot)
|
|
{
|
|
object fileLock;
|
|
if (!FileLocks.TryGetValue(uri, out fileLock))
|
|
FileLocks.Add(uri, fileLock = new object());
|
|
|
|
return fileLock;
|
|
}
|
|
}
|
|
|
|
internal static void Remove(Uri uri)
|
|
{
|
|
lock (SyncRoot)
|
|
{
|
|
if (FileLocks.ContainsKey(uri))
|
|
FileLocks.Remove(uri);
|
|
}
|
|
}
|
|
|
|
internal static void Clear()
|
|
{
|
|
lock (SyncRoot)
|
|
{
|
|
FileLocks.Clear();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif |