Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Configuration / System / Configuration / SafeBitVector32.cs / 1 / SafeBitVector32.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Threading; namespace System.Configuration { // // This is a multithreadsafe version of System.Collections.Specialized.BitVector32. // [Serializable] internal struct SafeBitVector32 { private volatile int _data; internal SafeBitVector32(int data) { this._data = data; } #if UNUSED_CODE internal bool IsAnySet(int bitMask) { int data = _data; return (data & bitMask) != 0; } #endif internal bool this[int bit] { get { int data = _data; return (data & bit) == bit; } set { for (;;) { int oldData = _data; int newData; if (value) { newData = oldData | bit; } else { newData = oldData & ~bit; } #pragma warning disable 0420 int result = Interlocked.CompareExchange(ref _data, newData, oldData); #pragma warning restore 0420 if (result == oldData) { break; } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Threading; namespace System.Configuration { // // This is a multithreadsafe version of System.Collections.Specialized.BitVector32. // [Serializable] internal struct SafeBitVector32 { private volatile int _data; internal SafeBitVector32(int data) { this._data = data; } #if UNUSED_CODE internal bool IsAnySet(int bitMask) { int data = _data; return (data & bitMask) != 0; } #endif internal bool this[int bit] { get { int data = _data; return (data & bit) == bit; } set { for (;;) { int oldData = _data; int newData; if (value) { newData = oldData | bit; } else { newData = oldData & ~bit; } #pragma warning disable 0420 int result = Interlocked.CompareExchange(ref _data, newData, oldData); #pragma warning restore 0420 if (result == oldData) { break; } } } } } } // 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
- DnsEndPoint.cs
- SoapSchemaMember.cs
- KnownTypes.cs
- RequestUriProcessor.cs
- CompositeActivityTypeDescriptor.cs
- ServicePointManagerElement.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- CodeGeneratorOptions.cs
- LogicalChannelCollection.cs
- ShaderEffect.cs
- TagPrefixAttribute.cs
- CodeTypeReferenceCollection.cs
- SQLInt64.cs
- DateTimeUtil.cs
- Panel.cs
- EnumerableCollectionView.cs
- DbQueryCommandTree.cs
- TypedReference.cs
- BindingManagerDataErrorEventArgs.cs
- SqlClientFactory.cs
- EntityTypeEmitter.cs
- CustomError.cs
- TrackingConditionCollection.cs
- VectorAnimationUsingKeyFrames.cs
- StylusEditingBehavior.cs
- RealizedColumnsBlock.cs
- RegexCompilationInfo.cs
- ContainerParaClient.cs
- CryptoApi.cs
- Clause.cs
- TextEndOfParagraph.cs
- VariantWrapper.cs
- HyperlinkAutomationPeer.cs
- PermissionSet.cs
- SetStateDesigner.cs
- ModelFunction.cs
- DtdParser.cs
- XmlConverter.cs
- SchemaTypeEmitter.cs
- LayoutEngine.cs
- CurrentTimeZone.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- DuplicateDetector.cs
- ClientSettings.cs
- RowTypeElement.cs
- documentsequencetextview.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- WindowCollection.cs
- CriticalFinalizerObject.cs
- HttpCachePolicy.cs
- Win32Exception.cs
- CompiledXpathExpr.cs
- SessionStateModule.cs
- XmlDataProvider.cs
- InkSerializer.cs
- ControllableStoryboardAction.cs
- AssemblyHash.cs
- ResourceAttributes.cs
- GridItem.cs
- HandlerFactoryWrapper.cs
- SelectionRangeConverter.cs
- DocumentViewerBase.cs
- GraphicsContext.cs
- _UncName.cs
- DashStyle.cs
- XXXOnTypeBuilderInstantiation.cs
- SqlDataAdapter.cs
- AppDomainShutdownMonitor.cs
- ThreadStateException.cs
- XmlDataLoader.cs
- ConfigXmlWhitespace.cs
- StateManagedCollection.cs
- CodeTypeParameter.cs
- SubMenuStyleCollection.cs
- DuplexClientBase.cs
- LinqDataSourceDisposeEventArgs.cs
- CodeNamespaceCollection.cs
- DataGridColumn.cs
- SoapSchemaImporter.cs
- SocketElement.cs
- DataContractSerializerOperationBehavior.cs
- LabelAutomationPeer.cs
- ManipulationCompletedEventArgs.cs
- MsmqTransportBindingElement.cs
- DataServiceRequestOfT.cs
- Paragraph.cs
- MD5.cs
- RtType.cs
- BaseResourcesBuildProvider.cs
- BindingListCollectionView.cs
- DataKeyCollection.cs
- WorkflowPersistenceContext.cs
- ValidationContext.cs
- SimpleTextLine.cs
- ViewPort3D.cs
- MsmqNonTransactedPoisonHandler.cs
- ScriptingScriptResourceHandlerSection.cs
- TextElementCollection.cs
- EntityReference.cs
- DataSourceControlBuilder.cs