Esempio n. 1
0
 private LockGuard(string key, string operationId, ExclusiveBlockConfiguration config)
 {
     _key               = key;
     _operationId       = operationId;
     _refreshPeriod     = new TimeSpan(config.LockTimeout.Ticks / 2 - 1);
     _dataProvider      = config.DataProvider;
     _finisher          = new CancellationTokenSource();
     _cancellationToken = config.CancellationToken;
     Trace.WriteLine($"SnTrace: System: ExclusiveLock guard created for {key} #{_operationId}. RefreshPeriod: {_refreshPeriod}");
 }
Esempio n. 2
0
 /// <summary>
 /// Sets the current <see cref="IExclusiveLockDataProviderExtension"/> instance that will be responsible
 /// for managing exclusive locks.
 /// </summary>
 /// <param name="builder">The IRepositoryBuilder instance.</param>
 /// <param name="provider">The extension instance to set.</param>
 /// <returns>The updated IRepositoryBuilder.</returns>
 public static IRepositoryBuilder UseExclusiveLockDataProviderExtension(this IRepositoryBuilder builder,
                                                                        IExclusiveLockDataProviderExtension provider)
 {
     Providers.Instance.DataProvider.SetExtension(typeof(IExclusiveLockDataProviderExtension), provider);
     return(builder);
 }
 /// <summary>
 /// Sets the current <see cref="IExclusiveLockDataProviderExtension"/> instance that will be responsible
 /// for managing exclusive locks.
 /// </summary>
 /// <param name="builder">The IRepositoryBuilder instance.</param>
 /// <param name="provider">The extension instance to set.</param>
 /// <returns>The updated IRepositoryBuilder.</returns>
 public static IRepositoryBuilder UseExclusiveLockDataProviderExtension(this IRepositoryBuilder builder,
                                                                        IExclusiveLockDataProviderExtension provider)
 {
     DataStore.SetDataProviderExtension(typeof(IExclusiveLockDataProviderExtension), provider);
     return(builder);
 }