Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Metadata / ObjectLayer / LockedAssemblyCache.cs / 1305376 / LockedAssemblyCache.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Threading; namespace System.Data.Metadata.Edm { internal class LockedAssemblyCache : IDisposable { private object _lockObject; private Dictionary_globalAssemblyCache; internal LockedAssemblyCache(object lockObject, Dictionary globalAssemblyCache) { _lockObject = lockObject; _globalAssemblyCache = globalAssemblyCache; #pragma warning disable 0618 //@ Monitor.Enter(_lockObject); #pragma warning restore 0618 } public void Dispose() { // Technically, calling GC.SuppressFinalize is not required because the class does not // have a finalizer, but it does no harm, protects against the case where a finalizer is added // in the future, and prevents an FxCop warning. GC.SuppressFinalize(this); Monitor.Exit(_lockObject); _lockObject = null; _globalAssemblyCache = null; } [Conditional("DEBUG")] private void AssertLockedByThisThread() { bool entered = false; Monitor.TryEnter(_lockObject, ref entered); if (entered) { Monitor.Exit(_lockObject); } Debug.Assert(entered, "The cache is being accessed by a thread that isn't holding the lock"); } internal bool TryGetValue(Assembly assembly, out ImmutableAssemblyCacheEntry cacheEntry) { AssertLockedByThisThread(); return _globalAssemblyCache.TryGetValue(assembly, out cacheEntry); } internal void Add(Assembly assembly, ImmutableAssemblyCacheEntry assemblyCacheEntry) { AssertLockedByThisThread(); _globalAssemblyCache.Add(assembly, assemblyCacheEntry); } internal void Clear() { AssertLockedByThisThread(); _globalAssemblyCache.Clear(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MimeBasePart.cs
- ProcessThread.cs
- XmlDesignerDataSourceView.cs
- ContractReference.cs
- Tile.cs
- ListParagraph.cs
- TypeElement.cs
- SqlDataSourceRefreshSchemaForm.cs
- ArraySubsetEnumerator.cs
- WindowsAuthenticationEventArgs.cs
- HelpEvent.cs
- KeyedHashAlgorithm.cs
- MonthCalendar.cs
- ScrollPatternIdentifiers.cs
- Logging.cs
- OutputScopeManager.cs
- TabControlAutomationPeer.cs
- ObjectStateFormatter.cs
- CreationContext.cs
- DeferredBinaryDeserializerExtension.cs
- _SafeNetHandles.cs
- UIElement3DAutomationPeer.cs
- DbDeleteCommandTree.cs
- ContextMenuStrip.cs
- SoapIncludeAttribute.cs
- CompositeCollection.cs
- FactoryRecord.cs
- Button.cs
- Queue.cs
- FixedElement.cs
- UiaCoreProviderApi.cs
- ProtocolsConfigurationHandler.cs
- HtmlInputCheckBox.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- SapiRecoContext.cs
- ShaperBuffers.cs
- ActivityExecutorSurrogate.cs
- XPathParser.cs
- DataGridViewCheckBoxColumn.cs
- FontSource.cs
- CommandConverter.cs
- DataProtection.cs
- COM2ExtendedBrowsingHandler.cs
- Material.cs
- SqlServices.cs
- TextMarkerSource.cs
- CoTaskMemUnicodeSafeHandle.cs
- DescendentsWalkerBase.cs
- StructuredTypeEmitter.cs
- SettingsBase.cs
- Application.cs
- ThemeDirectoryCompiler.cs
- LineServicesCallbacks.cs
- ScriptingJsonSerializationSection.cs
- Context.cs
- ContentType.cs
- FileStream.cs
- _FtpDataStream.cs
- SHA512.cs
- RecordsAffectedEventArgs.cs
- WebConfigManager.cs
- BooleanFacetDescriptionElement.cs
- XmlEncApr2001.cs
- EncodingNLS.cs
- RawTextInputReport.cs
- ProfileSection.cs
- XslCompiledTransform.cs
- XmlSchemaExporter.cs
- WindowsHyperlink.cs
- ResourceReferenceKeyNotFoundException.cs
- SqlDependency.cs
- DependencyPropertyDescriptor.cs
- XmlSchemaAttributeGroup.cs
- ThousandthOfEmRealPoints.cs
- ViewStateException.cs
- ADRoleFactoryConfiguration.cs
- DataGridViewCellMouseEventArgs.cs
- _SslStream.cs
- SchemaImporterExtensionsSection.cs
- ProviderException.cs
- MouseGesture.cs
- DocumentPaginator.cs
- MethodAccessException.cs
- DataSetMappper.cs
- DbDataSourceEnumerator.cs
- nulltextnavigator.cs
- BulletedListEventArgs.cs
- OutputCacheModule.cs
- SQLInt64Storage.cs
- QilInvokeLateBound.cs
- SqlDataSourceFilteringEventArgs.cs
- XXXInfos.cs
- PerfCounters.cs
- HandoffBehavior.cs
- DataListGeneralPage.cs
- ResourceDescriptionAttribute.cs
- WorkflowItemsPresenter.cs
- GradientBrush.cs
- SerializationTrace.cs
- TransformCollection.cs