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
- peernodestatemanager.cs
- QilParameter.cs
- AttributeCollection.cs
- StateMachine.cs
- FunctionCommandText.cs
- WebBaseEventKeyComparer.cs
- OpenTypeMethods.cs
- WebPartTransformerCollection.cs
- PageHandlerFactory.cs
- SuppressMessageAttribute.cs
- SettingsContext.cs
- CalendarDay.cs
- ResourceExpressionBuilder.cs
- InputBinding.cs
- SignatureDescription.cs
- TimerElapsedEvenArgs.cs
- SqlCommandBuilder.cs
- Operand.cs
- ForwardPositionQuery.cs
- FixedSOMTable.cs
- Screen.cs
- AutomationIdentifier.cs
- ComponentEvent.cs
- GenericEnumConverter.cs
- String.cs
- MessageDescription.cs
- Marshal.cs
- PropertyDescriptorComparer.cs
- XmlSortKey.cs
- oledbmetadatacollectionnames.cs
- DataGridViewComboBoxEditingControl.cs
- BaseComponentEditor.cs
- WmfPlaceableFileHeader.cs
- Symbol.cs
- DataException.cs
- FrameworkPropertyMetadata.cs
- ExpressionBuilder.cs
- ResourcePermissionBase.cs
- SpellerHighlightLayer.cs
- TextTreeText.cs
- CompiledQueryCacheEntry.cs
- StrongNameMembershipCondition.cs
- ArraySegment.cs
- ObjectSet.cs
- TraceListener.cs
- StoreUtilities.cs
- ModuleBuilderData.cs
- ReadWriteObjectLock.cs
- ProjectionNode.cs
- PointCollectionValueSerializer.cs
- LassoHelper.cs
- HtmlHead.cs
- HtmlInputControl.cs
- TemplatingOptionsDialog.cs
- WindowsBrush.cs
- EdgeModeValidation.cs
- WindowsIdentity.cs
- arc.cs
- TemplateControlBuildProvider.cs
- XmlSchemaInfo.cs
- FormViewUpdateEventArgs.cs
- ExpressionNormalizer.cs
- SystemThemeKey.cs
- LogExtent.cs
- DataSourceGeneratorException.cs
- Substitution.cs
- ErrorWebPart.cs
- UnsafeNativeMethodsPenimc.cs
- dsa.cs
- SelectionPattern.cs
- ControlLocalizer.cs
- ProcessModelInfo.cs
- SelectionItemPattern.cs
- SchemaInfo.cs
- TreeView.cs
- LinkArea.cs
- DBAsyncResult.cs
- WindowManager.cs
- PropertyGridView.cs
- SubpageParaClient.cs
- ConnectionStringsExpressionEditor.cs
- DoubleMinMaxAggregationOperator.cs
- DtrList.cs
- MasterPageBuildProvider.cs
- CodeDomSerializer.cs
- GroupBoxRenderer.cs
- BufferedGraphicsManager.cs
- NetworkInterface.cs
- ConnectorEditor.cs
- CodeDefaultValueExpression.cs
- ColumnReorderedEventArgs.cs
- TextEndOfParagraph.cs
- WebProxyScriptElement.cs
- PipelineComponent.cs
- GridPattern.cs
- GlobalItem.cs
- PeerHelpers.cs
- BindingElement.cs
- BindingManagerDataErrorEventArgs.cs
- ThicknessAnimation.cs