Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Data / System / Data / Odbc / OdbcEnvironment.cs / 1 / OdbcEnvironment.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System; using System.Data; using System.Data.Common; using System.Threading; namespace System.Data.Odbc { sealed internal class OdbcEnvironment { static private object _globalEnvironmentHandle; static private object _globalEnvironmentHandleLock = new object(); private OdbcEnvironment () {} // default const. static internal OdbcEnvironmentHandle GetGlobalEnvironmentHandle() { OdbcEnvironmentHandle globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { ADP.CheckVersionMDAC(true); lock(_globalEnvironmentHandleLock) { globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { globalEnvironmentHandle = new OdbcEnvironmentHandle(); _globalEnvironmentHandle = globalEnvironmentHandle; } } } return globalEnvironmentHandle; } static internal void ReleaseObjectPool() { object globalEnvironmentHandle = Interlocked.Exchange(ref _globalEnvironmentHandle, null); if(null != globalEnvironmentHandle) { (globalEnvironmentHandle as OdbcEnvironmentHandle).Dispose(); // internally refcounted so will happen correctly } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System; using System.Data; using System.Data.Common; using System.Threading; namespace System.Data.Odbc { sealed internal class OdbcEnvironment { static private object _globalEnvironmentHandle; static private object _globalEnvironmentHandleLock = new object(); private OdbcEnvironment () {} // default const. static internal OdbcEnvironmentHandle GetGlobalEnvironmentHandle() { OdbcEnvironmentHandle globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { ADP.CheckVersionMDAC(true); lock(_globalEnvironmentHandleLock) { globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { globalEnvironmentHandle = new OdbcEnvironmentHandle(); _globalEnvironmentHandle = globalEnvironmentHandle; } } } return globalEnvironmentHandle; } static internal void ReleaseObjectPool() { object globalEnvironmentHandle = Interlocked.Exchange(ref _globalEnvironmentHandle, null); if(null != globalEnvironmentHandle) { (globalEnvironmentHandle as OdbcEnvironmentHandle).Dispose(); // internally refcounted so will happen correctly } } } } // 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
- MemberPathMap.cs
- XmlILStorageConverter.cs
- PersonalizableTypeEntry.cs
- ObjectQueryProvider.cs
- GraphicsContainer.cs
- DefaultHttpHandler.cs
- PhonemeEventArgs.cs
- WsrmTraceRecord.cs
- InvalidFilterCriteriaException.cs
- LogEntryDeserializer.cs
- ApplicationFileCodeDomTreeGenerator.cs
- ContentPlaceHolder.cs
- InputMethodStateTypeInfo.cs
- BinaryUtilClasses.cs
- MimeBasePart.cs
- MapPathBasedVirtualPathProvider.cs
- UserControlBuildProvider.cs
- SHA512Cng.cs
- MasterPageBuildProvider.cs
- ConfigViewGenerator.cs
- storepermissionattribute.cs
- LogPolicy.cs
- DataGridViewTopLeftHeaderCell.cs
- ChangeToolStripParentVerb.cs
- ActivityCodeDomReferenceService.cs
- Journal.cs
- VarRemapper.cs
- HitTestWithPointDrawingContextWalker.cs
- SetterBase.cs
- Rect3D.cs
- PageStatePersister.cs
- InheritanceContextHelper.cs
- ColorContext.cs
- XmlSchemaAnyAttribute.cs
- LoginAutoFormat.cs
- SequentialWorkflowHeaderFooter.cs
- ViewBase.cs
- ToolStripLocationCancelEventArgs.cs
- SafeTimerHandle.cs
- WebEventTraceProvider.cs
- DrawingVisualDrawingContext.cs
- ConditionalAttribute.cs
- PropertyValueUIItem.cs
- SqlDataSourceQuery.cs
- CSharpCodeProvider.cs
- DataGridViewColumnHeaderCell.cs
- AffineTransform3D.cs
- ScriptIgnoreAttribute.cs
- SchemaTypeEmitter.cs
- EventProviderWriter.cs
- MatrixUtil.cs
- ThemeDirectoryCompiler.cs
- OleDbFactory.cs
- TableItemPattern.cs
- HMACSHA256.cs
- RotationValidation.cs
- GeneralTransform2DTo3DTo2D.cs
- MailDefinition.cs
- PassportPrincipal.cs
- Int64AnimationUsingKeyFrames.cs
- CodeExpressionCollection.cs
- CachedPathData.cs
- EdmItemError.cs
- UInt64Converter.cs
- FileRecordSequence.cs
- CompositeKey.cs
- SizeChangedInfo.cs
- RtfControlWordInfo.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- Visual3D.cs
- QueryInterceptorAttribute.cs
- MessageOperationFormatter.cs
- ProcessModelInfo.cs
- Debug.cs
- ExpressionEditorAttribute.cs
- ViewKeyConstraint.cs
- MissingMemberException.cs
- XmlnsCache.cs
- DocumentPaginator.cs
- ExplicitDiscriminatorMap.cs
- XmlSerializerNamespaces.cs
- Queue.cs
- SerialReceived.cs
- GlyphCache.cs
- AtomMaterializer.cs
- Visual3DCollection.cs
- EndOfStreamException.cs
- ReliableChannelFactory.cs
- CollectionEditor.cs
- SqlMethodTransformer.cs
- DataSetUtil.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ValueTypeFixupInfo.cs
- TypefaceMap.cs
- RunClient.cs
- FromReply.cs
- ScriptModule.cs
- InkPresenter.cs
- TextSegment.cs
- SchemaDeclBase.cs