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
- GlyphCache.cs
- MemberCollection.cs
- MeasurementDCInfo.cs
- TypeDelegator.cs
- unitconverter.cs
- ViewManagerAttribute.cs
- TextStore.cs
- FormatSettings.cs
- ServiceDesigner.cs
- StorageModelBuildProvider.cs
- ThousandthOfEmRealDoubles.cs
- InkCollectionBehavior.cs
- XmlAnyElementAttribute.cs
- IntegerFacetDescriptionElement.cs
- AutomationProperty.cs
- NetCodeGroup.cs
- ListBindableAttribute.cs
- SelectingProviderEventArgs.cs
- BaseTemplateCodeDomTreeGenerator.cs
- GridViewPageEventArgs.cs
- HttpListenerTimeoutManager.cs
- DataSvcMapFile.cs
- TextAdaptor.cs
- MasterPageCodeDomTreeGenerator.cs
- XmlAttributeCache.cs
- ContentHostHelper.cs
- BuildProviderAppliesToAttribute.cs
- TextPattern.cs
- FirstMatchCodeGroup.cs
- HeaderCollection.cs
- Transform.cs
- MethodAccessException.cs
- Camera.cs
- HttpHandler.cs
- SqlStatistics.cs
- LicFileLicenseProvider.cs
- ThicknessAnimationUsingKeyFrames.cs
- FullTrustAssembly.cs
- MessageQueueTransaction.cs
- XmlHierarchicalEnumerable.cs
- QueryContinueDragEventArgs.cs
- SqlResolver.cs
- StateDesigner.Layouts.cs
- XamlSerializerUtil.cs
- Utils.cs
- ImageConverter.cs
- DataGridViewRowPrePaintEventArgs.cs
- CatalogZone.cs
- NotifyInputEventArgs.cs
- ClosureBinding.cs
- Matrix.cs
- PropertyTabChangedEvent.cs
- TypeValidationEventArgs.cs
- Subtract.cs
- ThreadStaticAttribute.cs
- SqlCharStream.cs
- ControlCollection.cs
- XmlAnyElementAttribute.cs
- StrongNameUtility.cs
- MenuAdapter.cs
- DBAsyncResult.cs
- DateTimeFormat.cs
- Trace.cs
- AnonymousIdentificationModule.cs
- FileSecurity.cs
- SubMenuStyle.cs
- UpDownBase.cs
- PermissionToken.cs
- RecordConverter.cs
- DataGridPageChangedEventArgs.cs
- InputLanguageManager.cs
- DataListItemEventArgs.cs
- RegexNode.cs
- PreservationFileReader.cs
- SerializationInfo.cs
- TreeViewDataItemAutomationPeer.cs
- EntityViewContainer.cs
- KnownTypesHelper.cs
- TraceData.cs
- FloaterBaseParaClient.cs
- DocumentOrderComparer.cs
- RuleSettings.cs
- AssociationEndMember.cs
- PtsHost.cs
- DockPanel.cs
- HelpInfo.cs
- ImageMapEventArgs.cs
- Sentence.cs
- BatchServiceHost.cs
- StringUtil.cs
- CodeTypeDeclaration.cs
- AllMembershipCondition.cs
- ReachUIElementCollectionSerializerAsync.cs
- RevocationPoint.cs
- AbstractSvcMapFileLoader.cs
- DataObject.cs
- BaseParser.cs
- ElementProxy.cs
- DataAccessor.cs
- PathFigure.cs