Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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; } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CompilationLock.cs
- WindowsPrincipal.cs
- SafeBitVector32.cs
- SerializationInfo.cs
- XXXOnTypeBuilderInstantiation.cs
- EntityTransaction.cs
- QuaternionKeyFrameCollection.cs
- CellPartitioner.cs
- NeedSkipTokenVisitor.cs
- SharedUtils.cs
- CapabilitiesUse.cs
- XmlHelper.cs
- MetadataArtifactLoaderResource.cs
- LicFileLicenseProvider.cs
- DoubleLink.cs
- Tokenizer.cs
- ContentFilePart.cs
- ListChangedEventArgs.cs
- GridEntryCollection.cs
- QilChoice.cs
- UInt32Converter.cs
- ClientRuntimeConfig.cs
- QilLiteral.cs
- LoadRetryStrategyFactory.cs
- ConditionCollection.cs
- SortedDictionary.cs
- PolicyStatement.cs
- HttpCookie.cs
- PointCollection.cs
- TableParagraph.cs
- DataGridViewHeaderCell.cs
- ListViewItem.cs
- HttpCacheVaryByContentEncodings.cs
- Console.cs
- SynchronizedInputAdaptor.cs
- SQLDateTimeStorage.cs
- AppDomain.cs
- SQLStringStorage.cs
- RectangleGeometry.cs
- IndexOutOfRangeException.cs
- Action.cs
- SortedDictionary.cs
- SharedPerformanceCounter.cs
- ArraySortHelper.cs
- TypefaceCollection.cs
- Frame.cs
- WebServiceParameterData.cs
- SerTrace.cs
- TimelineGroup.cs
- ToggleButtonAutomationPeer.cs
- _LoggingObject.cs
- ObjectListItem.cs
- documentsequencetextcontainer.cs
- FileDataSourceCache.cs
- ButtonColumn.cs
- SQLSingle.cs
- ValidationSummaryDesigner.cs
- PerfCounters.cs
- CmsUtils.cs
- BuilderInfo.cs
- RewritingPass.cs
- SqlResolver.cs
- HtmlShim.cs
- XsltInput.cs
- BitmapSourceSafeMILHandle.cs
- CqlErrorHelper.cs
- MD5CryptoServiceProvider.cs
- SystemTcpConnection.cs
- ExceptionCollection.cs
- FixUp.cs
- SamlNameIdentifierClaimResource.cs
- UIntPtr.cs
- MenuCommandService.cs
- SmtpNegotiateAuthenticationModule.cs
- CodeIndexerExpression.cs
- DataBinder.cs
- PackWebRequest.cs
- SystemIPAddressInformation.cs
- AppDomainManager.cs
- invalidudtexception.cs
- TreeNodeSelectionProcessor.cs
- contentDescriptor.cs
- HitTestResult.cs
- RegexCompiler.cs
- Rect.cs
- BamlLocalizer.cs
- PropertyEntry.cs
- Viewport2DVisual3D.cs
- PagedControl.cs
- VoiceInfo.cs
- LocatorManager.cs
- OptionUsage.cs
- HuffmanTree.cs
- ConstrainedDataObject.cs
- AnnouncementClient.cs
- StorageComplexTypeMapping.cs
- FileUpload.cs
- TrackingServices.cs
- SelectionProcessor.cs
- serverconfig.cs