Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Util / SafeBitVector32.cs / 1 / SafeBitVector32.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Threading; namespace System.Web.Util { // // 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 int IntegerValue { get { return _data; } set { #pragma warning disable 0420 Interlocked.Exchange(ref _data, value); #pragma warning restore 0420 } } #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; } } } } internal bool ChangeValue(int bit, bool value) { for (;;) { int oldData = _data; int newData; if (value) { newData = oldData | bit; } else { newData = oldData & ~bit; } if (oldData == newData) { return false; } #pragma warning disable 0420 int result = Interlocked.CompareExchange(ref _data, newData, oldData); #pragma warning restore 0420 if (result == oldData) { return true; } } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DateRangeEvent.cs
- ExpressionHelper.cs
- OdbcConnectionFactory.cs
- LinearQuaternionKeyFrame.cs
- Set.cs
- Font.cs
- OdbcReferenceCollection.cs
- Brush.cs
- WorkflowMessageEventHandler.cs
- BadImageFormatException.cs
- IgnorePropertiesAttribute.cs
- TaiwanCalendar.cs
- SelectionPatternIdentifiers.cs
- ConvertersCollection.cs
- XmlSchema.cs
- Rect.cs
- GC.cs
- LinkedResource.cs
- ArgumentException.cs
- cache.cs
- EventManager.cs
- WebPartTransformerAttribute.cs
- KnownColorTable.cs
- ImageField.cs
- ContextStaticAttribute.cs
- Condition.cs
- EventBuilder.cs
- IsolatedStoragePermission.cs
- CompilerResults.cs
- XmlUtil.cs
- UTF32Encoding.cs
- PenThreadPool.cs
- EnumMember.cs
- CssTextWriter.cs
- FacetEnabledSchemaElement.cs
- BaseParaClient.cs
- CharAnimationBase.cs
- FeatureSupport.cs
- Interlocked.cs
- LoginNameDesigner.cs
- AbsoluteQuery.cs
- ContextBase.cs
- XmlSchemaNotation.cs
- BuildProviderCollection.cs
- LabelLiteral.cs
- HtmlEncodedRawTextWriter.cs
- IgnoreFileBuildProvider.cs
- SelectionPattern.cs
- PageThemeParser.cs
- DropSource.cs
- ListViewHitTestInfo.cs
- XpsFilter.cs
- SqlInternalConnectionSmi.cs
- AuthenticateEventArgs.cs
- DataSourceComponent.cs
- SqlGenerator.cs
- FrameworkElementFactory.cs
- Interlocked.cs
- MapPathBasedVirtualPathProvider.cs
- CodeGeneratorOptions.cs
- CaseInsensitiveComparer.cs
- ParameterCollectionEditorForm.cs
- EventMappingSettingsCollection.cs
- controlskin.cs
- PageClientProxyGenerator.cs
- CreateUserWizardAutoFormat.cs
- _CacheStreams.cs
- CalendarDateRangeChangingEventArgs.cs
- DuplexChannel.cs
- DbProviderFactories.cs
- AsymmetricSignatureDeformatter.cs
- CorrelationExtension.cs
- IgnoreFlushAndCloseStream.cs
- DataGridViewUtilities.cs
- RandomNumberGenerator.cs
- BoundsDrawingContextWalker.cs
- CodeParameterDeclarationExpressionCollection.cs
- CompModSwitches.cs
- CmsInterop.cs
- BaseTreeIterator.cs
- NetworkAddressChange.cs
- ToolBarOverflowPanel.cs
- CodeDefaultValueExpression.cs
- Serializer.cs
- ScriptComponentDescriptor.cs
- Int16Converter.cs
- RemotingSurrogateSelector.cs
- FontStretchConverter.cs
- LinkedResource.cs
- DataColumnCollection.cs
- ElementHost.cs
- ReadOnlyAttribute.cs
- LineSegment.cs
- BlobPersonalizationState.cs
- JsonFormatGeneratorStatics.cs
- RegexCode.cs
- X509CertificateClaimSet.cs
- ConfigurationElement.cs
- InfoCardRSACryptoProvider.cs
- SelectedDatesCollection.cs