Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- DocumentViewerAutomationPeer.cs
- arabicshape.cs
- EmbeddedObject.cs
- EqualityComparer.cs
- propertytag.cs
- ProviderCollection.cs
- SimpleHandlerBuildProvider.cs
- BuildResult.cs
- IndexerNameAttribute.cs
- ExtensionDataObject.cs
- StateMachineTimers.cs
- WebServiceClientProxyGenerator.cs
- ConsoleEntryPoint.cs
- ConnectionManagementElement.cs
- NavigationPropertyEmitter.cs
- ImportDesigner.xaml.cs
- HttpCachePolicyElement.cs
- BufferAllocator.cs
- PrivilegeNotHeldException.cs
- DataTableNameHandler.cs
- Version.cs
- OrderByQueryOptionExpression.cs
- SoundPlayer.cs
- XmlWhitespace.cs
- TransformDescriptor.cs
- CompilationSection.cs
- bidPrivateBase.cs
- UpdateManifestForBrowserApplication.cs
- ComponentDispatcher.cs
- StylusButton.cs
- BinHexEncoder.cs
- MobilePage.cs
- LinqDataSourceHelper.cs
- SharedDp.cs
- CodeCompileUnit.cs
- FileSecurity.cs
- PerfCounterSection.cs
- Error.cs
- ParserContext.cs
- Pointer.cs
- MessageSecurityOverMsmqElement.cs
- ModuleElement.cs
- LocalFileSettingsProvider.cs
- ProfessionalColorTable.cs
- TemplatedMailWebEventProvider.cs
- BmpBitmapEncoder.cs
- AllMembershipCondition.cs
- TimeIntervalCollection.cs
- VirtualPathUtility.cs
- PtsPage.cs
- StateItem.cs
- ExtendedTransformFactory.cs
- StrokeNodeOperations2.cs
- DefaultMemberAttribute.cs
- MeshGeometry3D.cs
- DbConnectionPool.cs
- EnumValAlphaComparer.cs
- ObjectNotFoundException.cs
- SqlBooleanizer.cs
- SecurityBindingElement.cs
- ListBase.cs
- TextEditor.cs
- xmlsaver.cs
- MultilineStringConverter.cs
- DataExpression.cs
- DocobjHost.cs
- BamlBinaryWriter.cs
- IChannel.cs
- FontConverter.cs
- FlowDocument.cs
- BatchWriter.cs
- BamlRecordWriter.cs
- RequiredAttributeAttribute.cs
- ProjectedSlot.cs
- RC2CryptoServiceProvider.cs
- TreeView.cs
- GlobalizationAssembly.cs
- ProfileSection.cs
- EtwTrace.cs
- SafeNativeMethods.cs
- FrameworkContentElementAutomationPeer.cs
- ReadOnlyNameValueCollection.cs
- SemanticBasicElement.cs
- DataServiceBuildProvider.cs
- ImageIndexEditor.cs
- UnmanagedMemoryStream.cs
- OptionalMessageQuery.cs
- SQlBooleanStorage.cs
- ClearTypeHintValidation.cs
- CompilerCollection.cs
- AssemblyCacheEntry.cs
- TreeNodeStyle.cs
- TextTabProperties.cs
- Vector3DValueSerializer.cs
- SignedXml.cs
- AssemblyHelper.cs
- PersistChildrenAttribute.cs
- PopupRoot.cs
- RemotingException.cs
- ResourceReader.cs