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
- SharedStatics.cs
- TargetException.cs
- Wildcard.cs
- PixelFormat.cs
- CommentEmitter.cs
- PhysicalOps.cs
- VoiceSynthesis.cs
- AudioLevelUpdatedEventArgs.cs
- ClientConfigPaths.cs
- WebPageTraceListener.cs
- BatchParser.cs
- StyleCollection.cs
- UriTemplateEquivalenceComparer.cs
- NavigationWindowAutomationPeer.cs
- XmlSchemaValidationException.cs
- XPathDocumentNavigator.cs
- ColumnResizeAdorner.cs
- UserControl.cs
- ImageClickEventArgs.cs
- JoinElimination.cs
- WeakRefEnumerator.cs
- ImmComposition.cs
- XmlObjectSerializerWriteContextComplex.cs
- PageParser.cs
- WebPartZoneCollection.cs
- MDIControlStrip.cs
- CounterSetInstanceCounterDataSet.cs
- TypeUsageBuilder.cs
- HTTPNotFoundHandler.cs
- UpDownEvent.cs
- TreeNodeStyleCollectionEditor.cs
- BuildProviderUtils.cs
- baseaxisquery.cs
- Translator.cs
- ExecutionPropertyManager.cs
- Point3DCollection.cs
- CreatingCookieEventArgs.cs
- CssStyleCollection.cs
- ConstantExpression.cs
- _UriSyntax.cs
- EventData.cs
- ActivationArguments.cs
- SoapDocumentServiceAttribute.cs
- DataFormat.cs
- XmlnsCompatibleWithAttribute.cs
- FixUp.cs
- _BasicClient.cs
- XmlSchemaDatatype.cs
- PersonalizablePropertyEntry.cs
- CompiledRegexRunner.cs
- ChangePassword.cs
- MessageParameterAttribute.cs
- VectorAnimationBase.cs
- BatchServiceHost.cs
- PieceNameHelper.cs
- ServiceTimeoutsElement.cs
- SystemResourceKey.cs
- SystemIPInterfaceStatistics.cs
- ConnectionProviderAttribute.cs
- SafeEventLogWriteHandle.cs
- AddInContractAttribute.cs
- RoleGroupCollection.cs
- HwndSourceKeyboardInputSite.cs
- PaperSource.cs
- CheckBox.cs
- InteropExecutor.cs
- HMACSHA1.cs
- SystemNetHelpers.cs
- SimpleBitVector32.cs
- XmlMapping.cs
- TextChange.cs
- Converter.cs
- NativeMethods.cs
- WebEventCodes.cs
- HtmlDocument.cs
- GlyphCollection.cs
- ToolStripSystemRenderer.cs
- ParameterCollection.cs
- TypeNameHelper.cs
- EdmFunction.cs
- Color.cs
- DbConnectionStringBuilder.cs
- AspProxy.cs
- __ComObject.cs
- WebBrowserDocumentCompletedEventHandler.cs
- VariantWrapper.cs
- StyleBamlTreeBuilder.cs
- TextServicesDisplayAttribute.cs
- Point3DConverter.cs
- DataGridLength.cs
- CompilerResults.cs
- CreateParams.cs
- CircleHotSpot.cs
- X509CertificateClaimSet.cs
- PartBasedPackageProperties.cs
- Inflater.cs
- ServiceObjectContainer.cs
- SizeIndependentAnimationStorage.cs
- FixedSOMLineRanges.cs
- DataObject.cs