Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- ToolStripContainerDesigner.cs
- SocketInformation.cs
- DataListItemCollection.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- Route.cs
- ListControlActionList.cs
- WindowsListViewGroupHelper.cs
- RemotingSurrogateSelector.cs
- ManagedIStream.cs
- Label.cs
- ErrorTolerantObjectWriter.cs
- DefaultMergeHelper.cs
- AutoResizedEvent.cs
- PieceNameHelper.cs
- XPathDocumentIterator.cs
- BevelBitmapEffect.cs
- StateInitializationDesigner.cs
- RtfToken.cs
- DataControlImageButton.cs
- HeaderUtility.cs
- Column.cs
- Html32TextWriter.cs
- DataSet.cs
- TimersDescriptionAttribute.cs
- TypeToArgumentTypeConverter.cs
- codemethodreferenceexpression.cs
- Simplifier.cs
- XmlLanguageConverter.cs
- EntityDataSourceValidationException.cs
- uribuilder.cs
- controlskin.cs
- VersionedStream.cs
- TdsParser.cs
- InteropAutomationProvider.cs
- ProviderCommandInfoUtils.cs
- WebZoneDesigner.cs
- ConfigsHelper.cs
- TextChangedEventArgs.cs
- EllipseGeometry.cs
- HtmlSelectionListAdapter.cs
- Rect3DValueSerializer.cs
- MetadataItem_Static.cs
- WsiProfilesElement.cs
- ConfigurationValues.cs
- OperatingSystem.cs
- HiddenFieldDesigner.cs
- DialogResultConverter.cs
- DBCommandBuilder.cs
- SharedConnectionListener.cs
- EmptyStringExpandableObjectConverter.cs
- CompatibleIComparer.cs
- FrameworkContentElement.cs
- DefaultEventAttribute.cs
- UnsafeNativeMethods.cs
- Subset.cs
- KeysConverter.cs
- X509CertificateTokenFactoryCredential.cs
- ChildrenQuery.cs
- XmlSequenceWriter.cs
- WebMessageEncoderFactory.cs
- BuildDependencySet.cs
- ByteAnimation.cs
- BindingUtils.cs
- AvTraceFormat.cs
- FontInfo.cs
- Win32.cs
- ToggleButtonAutomationPeer.cs
- WebDisplayNameAttribute.cs
- CompositeFontParser.cs
- VerificationException.cs
- TextRunCacheImp.cs
- ChangeBlockUndoRecord.cs
- ComPlusTraceRecord.cs
- Tracer.cs
- Vector3DAnimation.cs
- RuntimeHelpers.cs
- CodeTypeMember.cs
- PrintEvent.cs
- WizardPanelChangingEventArgs.cs
- GridEntry.cs
- SizeF.cs
- SafeCryptoKeyHandle.cs
- Expressions.cs
- SessionState.cs
- ChangeNode.cs
- MetaModel.cs
- GPRECT.cs
- SamlAudienceRestrictionCondition.cs
- CuspData.cs
- Transform3DGroup.cs
- SqlStatistics.cs
- GetPolicyDetailsRequest.cs
- PermissionListSet.cs
- TextWriterTraceListener.cs
- HeaderUtility.cs
- SystemDiagnosticsSection.cs
- FormViewUpdatedEventArgs.cs
- ObjectToIdCache.cs
- nulltextcontainer.cs
- ChannelServices.cs