removes the test suspendable model factory code
This commit is contained in:
@@ -28,17 +28,9 @@ namespace Umbraco.Core
|
||||
{
|
||||
lock (liveFactory.SyncRoot)
|
||||
{
|
||||
//if (_suspend != null)
|
||||
//{
|
||||
// //if we are currently suspended, queue the action
|
||||
// _suspend.Queue(action);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
//Call refresh on the live factory to re-compile the models
|
||||
liveFactory.Refresh();
|
||||
action();
|
||||
//}
|
||||
//Call refresh on the live factory to re-compile the models
|
||||
liveFactory.Refresh();
|
||||
action();
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -103,85 +95,5 @@ namespace Umbraco.Core
|
||||
|
||||
private static volatile bool _refresh = false;
|
||||
|
||||
//public static IDisposable SuspendSafeLiveFactory(this IPublishedModelFactory factory)
|
||||
//{
|
||||
// if (factory is ILivePublishedModelFactory liveFactory)
|
||||
// {
|
||||
// lock (liveFactory.SyncRoot)
|
||||
// {
|
||||
// if (_suspend == null)
|
||||
// {
|
||||
// _suspend = new SuspendSafeLiveFactory(
|
||||
// factory,
|
||||
// () => _suspend = null); //reset when it's done
|
||||
// }
|
||||
// return _suspend;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// return new SuspendSafeLiveFactory(factory); //returns a noop version of IDisposable, this won't actually do anything
|
||||
// }
|
||||
//}
|
||||
|
||||
//private static SuspendSafeLiveFactory _suspend;
|
||||
}
|
||||
|
||||
internal class SuspendSafeLiveFactory : IDisposable
|
||||
{
|
||||
private readonly IPublishedModelFactory _factory;
|
||||
private readonly Action _reset;
|
||||
private readonly List<Action> _actions = new List<Action>();
|
||||
|
||||
public SuspendSafeLiveFactory(IPublishedModelFactory factory, Action reset = null)
|
||||
{
|
||||
_factory = factory;
|
||||
_reset = reset;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Queue an action to execute on disposal after rebuild
|
||||
/// </summary>
|
||||
/// <param name="action"></param>
|
||||
public void Queue(Action action)
|
||||
{
|
||||
_actions.Add(action);
|
||||
}
|
||||
|
||||
#region IDisposable Support
|
||||
private bool disposedValue = false; // To detect redundant calls
|
||||
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (!disposedValue)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
if (_factory is ILivePublishedModelFactory liveFactory)
|
||||
{
|
||||
lock (liveFactory.SyncRoot)
|
||||
{
|
||||
//Call refresh on the live factory to re-compile the models
|
||||
liveFactory.Refresh();
|
||||
|
||||
//then we need to call all queued actions
|
||||
foreach(var action in _actions)
|
||||
action();
|
||||
}
|
||||
}
|
||||
_reset?.Invoke();
|
||||
}
|
||||
disposedValue = true;
|
||||
}
|
||||
}
|
||||
|
||||
// This code added to correctly implement the disposable pattern.
|
||||
public void Dispose()
|
||||
{
|
||||
// Do not change this code. Put cleanup code in Dispose(bool disposing) above.
|
||||
Dispose(true);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user