Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / Odbc / OdbcEnvironment.cs / 1305376 / 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
- InstanceDescriptor.cs
- MessageEncodingBindingElementImporter.cs
- Int64.cs
- DataControlCommands.cs
- ObjectStateManager.cs
- WebCodeGenerator.cs
- EntryWrittenEventArgs.cs
- InheritanceContextHelper.cs
- SqlConnectionString.cs
- ContentElement.cs
- XmlLoader.cs
- EncoderNLS.cs
- CertificateManager.cs
- ExceptionHandlersDesigner.cs
- SystemWebCachingSectionGroup.cs
- BlurBitmapEffect.cs
- GraphicsPathIterator.cs
- DragDrop.cs
- TemplateColumn.cs
- InvalidComObjectException.cs
- TextContainerChangedEventArgs.cs
- DataRecordObjectView.cs
- XmlNamespaceManager.cs
- CodeCommentStatement.cs
- MembershipUser.cs
- ETagAttribute.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- MenuCommand.cs
- TextBlock.cs
- TextRangeAdaptor.cs
- SqlRetyper.cs
- XmlMembersMapping.cs
- LinkedList.cs
- LinkConverter.cs
- DBCommandBuilder.cs
- PLINQETWProvider.cs
- BitStream.cs
- ErrorStyle.cs
- ErrorTableItemStyle.cs
- ZipIOExtraFieldElement.cs
- SHA512Managed.cs
- EmptyControlCollection.cs
- FixedPageStructure.cs
- EntitySqlException.cs
- PeerNodeTraceRecord.cs
- SyntaxCheck.cs
- RemoteArgument.cs
- MailAddress.cs
- Timer.cs
- Interlocked.cs
- ObjectListFieldCollection.cs
- FormViewUpdatedEventArgs.cs
- PageThemeParser.cs
- OutKeywords.cs
- XmlObjectSerializerReadContext.cs
- OrderedHashRepartitionStream.cs
- ConstNode.cs
- VideoDrawing.cs
- OdbcEnvironment.cs
- LayoutTable.cs
- InfiniteTimeSpanConverter.cs
- TimelineGroup.cs
- MaskedTextProvider.cs
- TypeSystem.cs
- FileIOPermission.cs
- PositiveTimeSpanValidator.cs
- AnnotationService.cs
- XmlWrappingReader.cs
- IISMapPath.cs
- InputReferenceExpression.cs
- DropSource.cs
- CapabilitiesRule.cs
- DrawingGroup.cs
- HitTestDrawingContextWalker.cs
- View.cs
- ValidatingPropertiesEventArgs.cs
- PeerTransportSecurityElement.cs
- XmlCharCheckingReader.cs
- DynamicResourceExtension.cs
- TableHeaderCell.cs
- FlowDecisionDesigner.xaml.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- SiteIdentityPermission.cs
- CodeAccessSecurityEngine.cs
- wgx_commands.cs
- TextProviderWrapper.cs
- serverconfig.cs
- MethodAccessException.cs
- PerformanceCounterLib.cs
- MenuItemBinding.cs
- xsdvalidator.cs
- DependencyPropertyAttribute.cs
- StdValidatorsAndConverters.cs
- counter.cs
- MachineKeySection.cs
- UnsafeNativeMethods.cs
- DeviceContexts.cs
- SecurityDescriptor.cs
- httpapplicationstate.cs
- GroupQuery.cs