namespace Umbraco.Cms.Core.Runtime;
///
/// An application-wide distributed lock
///
///
/// Disposing releases the lock
///
public interface IMainDomLock : IDisposable
{
///
/// Acquires an application-wide distributed lock
///
///
///
/// An awaitable boolean value which will be false if the elapsed millsecondsTimeout value is exceeded
///
Task AcquireLockAsync(int millisecondsTimeout);
///
/// Wait on a background thread to receive a signal from another AppDomain
///
///
Task ListenAsync();
}