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
- Internal.cs
- DataControlFieldHeaderCell.cs
- BaseProcessProtocolHandler.cs
- Wildcard.cs
- MessageDecoder.cs
- ColorConvertedBitmap.cs
- LinkedResourceCollection.cs
- IFlowDocumentViewer.cs
- DataGridPagerStyle.cs
- OdbcCommand.cs
- BasicExpressionVisitor.cs
- ListItemCollection.cs
- ChildrenQuery.cs
- ThreadNeutralSemaphore.cs
- DispatcherProcessingDisabled.cs
- AdRotator.cs
- ReadOnlyCollection.cs
- PersistChildrenAttribute.cs
- SubMenuStyle.cs
- FastPropertyAccessor.cs
- PhonemeEventArgs.cs
- HighlightVisual.cs
- AutoGeneratedField.cs
- NetworkStream.cs
- Win32Native.cs
- TransformerConfigurationWizardBase.cs
- DefaultSection.cs
- MessageQueueConverter.cs
- SizeIndependentAnimationStorage.cs
- BuildProviderAppliesToAttribute.cs
- BatchServiceHost.cs
- CodeGenerationManager.cs
- ClientSession.cs
- ElementHostAutomationPeer.cs
- UserControl.cs
- BooleanFacetDescriptionElement.cs
- CssTextWriter.cs
- PlanCompiler.cs
- SqlUtils.cs
- ConfigsHelper.cs
- CollectionViewGroupInternal.cs
- SimpleBitVector32.cs
- FixedTextSelectionProcessor.cs
- lengthconverter.cs
- NegotiationTokenAuthenticatorState.cs
- SecurityManager.cs
- InvalidProgramException.cs
- XmlKeywords.cs
- ReadOnlyHierarchicalDataSource.cs
- MetadataArtifactLoaderCompositeResource.cs
- IndexerNameAttribute.cs
- TreeNodeBinding.cs
- FormatterConverter.cs
- StorageScalarPropertyMapping.cs
- ChildTable.cs
- DmlSqlGenerator.cs
- WebPartDisplayModeCancelEventArgs.cs
- WrapperEqualityComparer.cs
- TextTabProperties.cs
- Mapping.cs
- StateWorkerRequest.cs
- mediaclock.cs
- ObjectSet.cs
- CookieParameter.cs
- FileDialogCustomPlacesCollection.cs
- EncryptedKeyIdentifierClause.cs
- AnyReturnReader.cs
- MailSettingsSection.cs
- XmlReader.cs
- ZipIOModeEnforcingStream.cs
- ChangeToolStripParentVerb.cs
- TimeManager.cs
- ComIntegrationManifestGenerator.cs
- AsnEncodedData.cs
- ToolStripRenderEventArgs.cs
- AnnotationResourceCollection.cs
- WebPartHeaderCloseVerb.cs
- RectangleGeometry.cs
- PropertyToken.cs
- EventHandlersStore.cs
- RecommendedAsConfigurableAttribute.cs
- XmlImplementation.cs
- LocalFileSettingsProvider.cs
- SimpleWorkerRequest.cs
- SizeConverter.cs
- RSAPKCS1KeyExchangeFormatter.cs
- MenuTracker.cs
- DataGridViewRowEventArgs.cs
- SpeechSynthesizer.cs
- CommandExpr.cs
- WindowsGraphicsCacheManager.cs
- Line.cs
- ComboBox.cs
- ZipIORawDataFileBlock.cs
- MenuItemBindingCollection.cs
- DataGridViewColumnCollection.cs
- TransactionFlowProperty.cs
- GridSplitter.cs
- ValidationError.cs
- XmlTextEncoder.cs