Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Configuration / System / Configuration / SafeBitVector32.cs / 1305376 / 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
- MessageDesigner.cs
- StorageAssociationTypeMapping.cs
- ListParaClient.cs
- Mutex.cs
- BamlLocalizationDictionary.cs
- WebPartConnectionsConnectVerb.cs
- TypographyProperties.cs
- LocalizationComments.cs
- PlatformCulture.cs
- ListViewItem.cs
- SettingsPropertyCollection.cs
- PathFigure.cs
- RuntimeWrappedException.cs
- CompositeScriptReferenceEventArgs.cs
- RadioButton.cs
- ConnectionPool.cs
- COM2IProvidePropertyBuilderHandler.cs
- ConnectionStringsExpressionBuilder.cs
- Section.cs
- EpmContentDeSerializerBase.cs
- COM2ExtendedTypeConverter.cs
- ModuleElement.cs
- ScrollData.cs
- TextViewBase.cs
- EditorZone.cs
- ColorAnimationUsingKeyFrames.cs
- MissingFieldException.cs
- IdentityModelDictionary.cs
- HierarchicalDataSourceControl.cs
- StringReader.cs
- ButtonFieldBase.cs
- BinaryParser.cs
- OleDbConnectionFactory.cs
- AccessibleObject.cs
- Pair.cs
- coordinatorscratchpad.cs
- QilGeneratorEnv.cs
- EventHandlerList.cs
- Stack.cs
- __Filters.cs
- SetterBase.cs
- TraceContextRecord.cs
- DocComment.cs
- TranslateTransform3D.cs
- MissingFieldException.cs
- ExceptionUtil.cs
- EventLogConfiguration.cs
- HttpListenerTimeoutManager.cs
- MessageQueueKey.cs
- PathFigure.cs
- ExpandoClass.cs
- PageOrientation.cs
- Schema.cs
- EllipticalNodeOperations.cs
- AVElementHelper.cs
- JpegBitmapDecoder.cs
- AutoResetEvent.cs
- ComponentCollection.cs
- ManualResetEvent.cs
- ButtonChrome.cs
- SudsWriter.cs
- FacetDescriptionElement.cs
- LinkButton.cs
- DataContractSet.cs
- EncryptedKey.cs
- TextServicesCompartmentContext.cs
- MissingFieldException.cs
- ComplexTypeEmitter.cs
- Context.cs
- ListViewGroupItemCollection.cs
- AssemblyCache.cs
- SingleAnimationBase.cs
- PersonalizationDictionary.cs
- X509Certificate2.cs
- HtmlTernaryTree.cs
- SiteMapNodeCollection.cs
- HtmlEmptyTagControlBuilder.cs
- RsaKeyIdentifierClause.cs
- NegatedConstant.cs
- WebPartAddingEventArgs.cs
- GeneralTransform3DTo2D.cs
- ReadOnlyDictionary.cs
- CompilationUtil.cs
- ScriptResourceMapping.cs
- WebSysDefaultValueAttribute.cs
- Point3DAnimation.cs
- ClientRuntimeConfig.cs
- CSharpCodeProvider.cs
- MetadataArtifactLoaderFile.cs
- SchemaManager.cs
- Model3D.cs
- DiagnosticTraceSchemas.cs
- FrameworkElementFactoryMarkupObject.cs
- WriterOutput.cs
- HtmlTextArea.cs
- DependencyProperty.cs
- DataColumnMapping.cs
- TemplatedWizardStep.cs
- Compiler.cs
- DuplicateDetector.cs