HTTPCacheFileLock.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #if !BESTHTTP_DISABLE_CACHING
  2. using System;
  3. using System.Collections.Generic;
  4. namespace BestHTTP.Caching
  5. {
  6. //static class HTTPCacheFileLock
  7. //{
  8. // private static Dictionary<Uri, object> FileLocks = new Dictionary<Uri, object>();
  9. // //private static object SyncRoot = new object();
  10. // private static System.Threading.ReaderWriterLockSlim rwLock = new System.Threading.ReaderWriterLockSlim(System.Threading.LockRecursionPolicy.NoRecursion);
  11. //
  12. // internal static object Acquire(Uri uri)
  13. // {
  14. // rwLock.EnterUpgradeableReadLock();
  15. // try
  16. // {
  17. // object fileLock;
  18. // if (!FileLocks.TryGetValue(uri, out fileLock))
  19. // {
  20. // rwLock.EnterWriteLock();
  21. // try
  22. // {
  23. // FileLocks.Add(uri, fileLock = new object());
  24. // }
  25. // finally
  26. // {
  27. // rwLock.ExitWriteLock();
  28. // }
  29. // }
  30. //
  31. // return fileLock;
  32. // }
  33. // finally
  34. // {
  35. // rwLock.ExitUpgradeableReadLock();
  36. // }
  37. // }
  38. //}
  39. }
  40. #endif