removed locking from resolve args

This commit is contained in:
Luke Pulverenti
2013-09-25 18:41:25 -04:00
parent 262dc6d8cd
commit 791d64ceed
2 changed files with 69 additions and 122 deletions

View File

@@ -304,14 +304,6 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
private ItemResolveArgs _resolveArgs;
/// <summary>
/// The _resolve args initialized
/// </summary>
private bool _resolveArgsInitialized;
/// <summary>
/// The _resolve args sync lock
/// </summary>
private object _resolveArgsSyncLock = new object();
/// <summary>
/// We attach these to the item so that we only ever have to hit the file system once
/// (this includes the children of the containing folder)
/// </summary>
@@ -321,26 +313,24 @@ namespace MediaBrowser.Controller.Entities
{
get
{
try
if (_resolveArgs == null)
{
LazyInitializer.EnsureInitialized(ref _resolveArgs, ref _resolveArgsInitialized, ref _resolveArgsSyncLock, () => CreateResolveArgs());
}
catch (IOException ex)
{
Logger.ErrorException("Error creating resolve args for {0}", ex, Path);
try
{
_resolveArgs = CreateResolveArgs();
}
catch (IOException ex)
{
Logger.ErrorException("Error creating resolve args for {0}", ex, Path);
IsOffline = true;
IsOffline = true;
throw;
throw;
}
}
return _resolveArgs;
}
private set
{
_resolveArgs = value;
_resolveArgsInitialized = value != null;
}
}
/// <summary>
@@ -354,12 +344,12 @@ namespace MediaBrowser.Controller.Entities
public void ResetResolveArgs()
{
ResolveArgs = null;
_resolveArgs = null;
}
public void ResetResolveArgs(ItemResolveArgs args)
{
ResolveArgs = args;
_resolveArgs = args;
}
/// <summary>
@@ -759,7 +749,7 @@ namespace MediaBrowser.Controller.Entities
if (dbItem != null)
{
dbItem.ResolveArgs = video.ResolveArgs;
dbItem.ResetResolveArgs(video.ResolveArgs);
video = dbItem;
}
@@ -820,7 +810,7 @@ namespace MediaBrowser.Controller.Entities
if (dbItem != null)
{
dbItem.ResolveArgs = audio.ResolveArgs;
dbItem.ResetResolveArgs(audio.ResolveArgs);
audio = dbItem;
}
@@ -878,7 +868,7 @@ namespace MediaBrowser.Controller.Entities
if (dbItem != null)
{
dbItem.ResolveArgs = item.ResolveArgs;
dbItem.ResetResolveArgs(item.ResolveArgs);
item = dbItem;
}