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
- SmiMetaData.cs
- StylusLogic.cs
- DataGridCommandEventArgs.cs
- SiteMapNode.cs
- ExceptionUtility.cs
- XmlNodeChangedEventArgs.cs
- versioninfo.cs
- ValueOfAction.cs
- NotificationContext.cs
- CalendarDay.cs
- _DigestClient.cs
- DesignerUtility.cs
- WmfPlaceableFileHeader.cs
- AbstractSvcMapFileLoader.cs
- TimeStampChecker.cs
- ArgumentException.cs
- Membership.cs
- SliderAutomationPeer.cs
- Typography.cs
- ScrollBar.cs
- Trace.cs
- MenuEventArgs.cs
- TrailingSpaceComparer.cs
- InternalConfigHost.cs
- _ScatterGatherBuffers.cs
- HMACSHA512.cs
- SynchronizationContext.cs
- ConfigurationLocation.cs
- SchemaImporterExtensionElement.cs
- StringResourceManager.cs
- InputReport.cs
- SortableBindingList.cs
- CatchBlock.cs
- StylusOverProperty.cs
- RoleManagerModule.cs
- HtmlTableRowCollection.cs
- BooleanKeyFrameCollection.cs
- AssemblyResourceLoader.cs
- DbDataSourceEnumerator.cs
- ImageUrlEditor.cs
- EventSetter.cs
- CheckBox.cs
- TrackingMemoryStream.cs
- ListSourceHelper.cs
- RequestCacheEntry.cs
- InputScope.cs
- MaterialGroup.cs
- ComPersistableTypeElementCollection.cs
- AssemblyCacheEntry.cs
- HandlerBase.cs
- DrawingAttributeSerializer.cs
- FontCollection.cs
- SR.cs
- XmlSignatureProperties.cs
- BitVector32.cs
- ObjectStorage.cs
- OperationContractAttribute.cs
- PersonalizationEntry.cs
- WindowsToolbar.cs
- MimeTypePropertyAttribute.cs
- SpecularMaterial.cs
- SecurityManager.cs
- MessageQueueAccessControlEntry.cs
- WebPartUtil.cs
- MarkupCompilePass1.cs
- DrawToolTipEventArgs.cs
- AsymmetricSignatureFormatter.cs
- GraphicsContext.cs
- AssemblyBuilder.cs
- IfAction.cs
- SqlUDTStorage.cs
- WebChannelFactory.cs
- SQLGuidStorage.cs
- SessionStateUtil.cs
- Schedule.cs
- OdbcConnectionString.cs
- PropertyCollection.cs
- SubclassTypeValidator.cs
- HtmlButton.cs
- ButtonRenderer.cs
- Operators.cs
- RoleExceptions.cs
- XmlTypeMapping.cs
- BrowserCapabilitiesFactoryBase.cs
- RewritingProcessor.cs
- OleDbFactory.cs
- SortableBindingList.cs
- Vars.cs
- DesignerActionPropertyItem.cs
- MenuEventArgs.cs
- ConfigurationStrings.cs
- PictureBox.cs
- COM2ExtendedUITypeEditor.cs
- DataGridViewElement.cs
- KnownTypesHelper.cs
- XmlSortKeyAccumulator.cs
- AudioDeviceOut.cs
- PresentationTraceSources.cs
- AccessDataSourceView.cs
- EDesignUtil.cs