public EtagSynchronizer(EtagSynchronizerType type, ITransactionalStorage transactionalStorage) { this.type = type; this.transactionalStorage = transactionalStorage; LoadSynchronizationState(); }
public EtagSynchronizer GetSynchronizer(EtagSynchronizerType type) { EtagSynchronizer value; if (etagSynchronizers.TryGetValue(type, out value)) return value; lock (this) { if (etagSynchronizers.TryGetValue(type, out value)) return value; value = new EtagSynchronizer(type, transactionalStorage); etagSynchronizers = new Dictionary<EtagSynchronizerType, EtagSynchronizer>(etagSynchronizers) { {type, value} }; return value; } }
public EtagSynchronizer GetSynchronizer(EtagSynchronizerType type) { EtagSynchronizer value; if (etagSynchronizers.TryGetValue(type, out value)) { return(value); } lock (this) { if (etagSynchronizers.TryGetValue(type, out value)) { return(value); } value = new EtagSynchronizer(type, transactionalStorage); etagSynchronizers = new Dictionary <EtagSynchronizerType, EtagSynchronizer>(etagSynchronizers) { { type, value } }; return(value); } }