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
- AmbientProperties.cs
- EnumConverter.cs
- XmlLoader.cs
- ImportStoreException.cs
- GeneratedContractType.cs
- ApplicationSecurityInfo.cs
- XMLDiffLoader.cs
- Internal.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- PropertyEntry.cs
- SerializableAttribute.cs
- MouseEvent.cs
- Triplet.cs
- CodeRemoveEventStatement.cs
- AssemblyCache.cs
- HMACRIPEMD160.cs
- BindingWorker.cs
- Shape.cs
- invalidudtexception.cs
- TranslateTransform.cs
- TextTreeFixupNode.cs
- NamedPipeActivation.cs
- PropertyRecord.cs
- IssuedTokensHeader.cs
- RubberbandSelector.cs
- BamlLocalizableResource.cs
- DependencyProperty.cs
- ConfigurationLocationCollection.cs
- TableLayoutStyleCollection.cs
- DBBindings.cs
- RuntimeConfig.cs
- CodeDesigner.cs
- FileLogRecordHeader.cs
- ResourcePermissionBaseEntry.cs
- ResourceManagerWrapper.cs
- ActivityXRefPropertyEditor.cs
- Padding.cs
- ParagraphVisual.cs
- CodeTypeMember.cs
- EnumConverter.cs
- WeakHashtable.cs
- FileDialogCustomPlacesCollection.cs
- RenamedEventArgs.cs
- WindowsToolbar.cs
- FormViewRow.cs
- TailCallAnalyzer.cs
- TextElementAutomationPeer.cs
- ClientProxyGenerator.cs
- IncrementalCompileAnalyzer.cs
- PathSegment.cs
- WebException.cs
- LabelAutomationPeer.cs
- RelationHandler.cs
- BitConverter.cs
- ReflectEventDescriptor.cs
- ThreadStateException.cs
- SafeNativeMemoryHandle.cs
- SqlLiftIndependentRowExpressions.cs
- ManifestSignedXml.cs
- PermissionAttributes.cs
- SqlRecordBuffer.cs
- Evaluator.cs
- JavaScriptObjectDeserializer.cs
- DateTimeParse.cs
- DiscardableAttribute.cs
- FontInfo.cs
- _BufferOffsetSize.cs
- DESCryptoServiceProvider.cs
- TreeNodeEventArgs.cs
- DeflateStream.cs
- OleDbPermission.cs
- ImageFormatConverter.cs
- CopyAction.cs
- WebDisplayNameAttribute.cs
- PartialCachingAttribute.cs
- SqlLiftIndependentRowExpressions.cs
- XmlSchemaSimpleTypeRestriction.cs
- DataBinder.cs
- CodeFieldReferenceExpression.cs
- ControlBindingsConverter.cs
- ProcessModelInfo.cs
- OperationPerformanceCounters.cs
- _TimerThread.cs
- UnsafeNativeMethods.cs
- _ConnectionGroup.cs
- NamespaceQuery.cs
- AppDomainFactory.cs
- ExtendedProperty.cs
- Region.cs
- DocumentEventArgs.cs
- CommentEmitter.cs
- CachingParameterInspector.cs
- ArraySubsetEnumerator.cs
- IndexObject.cs
- HMACSHA256.cs
- EllipseGeometry.cs
- Bold.cs
- Control.cs
- DrawingBrush.cs
- SessionStateContainer.cs