Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- HtmlElementErrorEventArgs.cs
- SessionSwitchEventArgs.cs
- ImageIndexEditor.cs
- HttpTransportBindingElement.cs
- StringWriter.cs
- AccessibleObject.cs
- ZipIOModeEnforcingStream.cs
- HttpListenerException.cs
- DataGridViewRowPrePaintEventArgs.cs
- XslVisitor.cs
- RuleSetBrowserDialog.cs
- XPathNodeList.cs
- PageSettings.cs
- DBDataPermission.cs
- SchemaMerger.cs
- MessageLoggingElement.cs
- XamlReaderHelper.cs
- CommonDialog.cs
- columnmapkeybuilder.cs
- FixedTextPointer.cs
- TaiwanCalendar.cs
- EntityFrameworkVersions.cs
- DictionaryGlobals.cs
- IssuerInformation.cs
- MulticastNotSupportedException.cs
- CategoryList.cs
- SiteOfOriginPart.cs
- RequestQueue.cs
- GZipObjectSerializer.cs
- COM2IPerPropertyBrowsingHandler.cs
- WebPartZone.cs
- DataGridViewRow.cs
- LinearKeyFrames.cs
- DataTableClearEvent.cs
- HashHelper.cs
- BitmapEffectDrawingContextState.cs
- WebServiceTypeData.cs
- ToolStripHighContrastRenderer.cs
- XomlCompiler.cs
- GPPOINT.cs
- HtmlInputImage.cs
- FontWeight.cs
- PropertyMetadata.cs
- DataSourceControl.cs
- PointLightBase.cs
- DependentList.cs
- TransformConverter.cs
- MimeObjectFactory.cs
- TraceContextEventArgs.cs
- ListItemParagraph.cs
- mediaclock.cs
- ComplexTypeEmitter.cs
- BaseTemplateBuildProvider.cs
- ValidationHelper.cs
- ProcessingInstructionAction.cs
- ObjectTag.cs
- If.cs
- UnsafeNativeMethods.cs
- ValidationSummary.cs
- ConfigXmlText.cs
- SynchronizingStream.cs
- Translator.cs
- KeyToListMap.cs
- SrgsText.cs
- AmbientLight.cs
- OpCellTreeNode.cs
- Misc.cs
- RealizationDrawingContextWalker.cs
- ItemDragEvent.cs
- ApplicationBuildProvider.cs
- EncodingInfo.cs
- PriorityQueue.cs
- TextHintingModeValidation.cs
- ControlType.cs
- ClrPerspective.cs
- KeyInfo.cs
- Subset.cs
- HuffmanTree.cs
- Item.cs
- PropertyPath.cs
- KerberosReceiverSecurityToken.cs
- SafeNativeMethods.cs
- RadioButton.cs
- TextInfo.cs
- NgenServicingAttributes.cs
- XmlParserContext.cs
- EditCommandColumn.cs
- Odbc32.cs
- HttpVersion.cs
- Context.cs
- ListViewDeleteEventArgs.cs
- RequestStatusBarUpdateEventArgs.cs
- SchemaNames.cs
- HtmlString.cs
- InvalidCastException.cs
- FtpCachePolicyElement.cs
- Hash.cs
- _emptywebproxy.cs
- Point3DConverter.cs
- TypeLibConverter.cs