Code:
/ FX-1434 / FX-1434 / 1.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
- FileDetails.cs
- Border.cs
- TemplateInstanceAttribute.cs
- DesignerDataView.cs
- UInt64Converter.cs
- DiscoveryMessageSequenceCD1.cs
- IdentityManager.cs
- LocatorPartList.cs
- SynchronousChannel.cs
- VectorValueSerializer.cs
- Semaphore.cs
- ConnectivityStatus.cs
- XmlNodeList.cs
- DataGridViewImageCell.cs
- ObjectKeyFrameCollection.cs
- SerializationInfoEnumerator.cs
- PropertyAccessVisitor.cs
- InputChannel.cs
- Operator.cs
- BitmapEffectState.cs
- OleDbMetaDataFactory.cs
- InternalsVisibleToAttribute.cs
- TabletDevice.cs
- AppDomainUnloadedException.cs
- WmlCalendarAdapter.cs
- DBSqlParserTableCollection.cs
- SamlAuthenticationStatement.cs
- TextBlock.cs
- CapiSafeHandles.cs
- CompareInfo.cs
- Tracking.cs
- DbgUtil.cs
- BuildProvider.cs
- ToolStripLocationCancelEventArgs.cs
- BitmapEffectCollection.cs
- RegexInterpreter.cs
- ResourceType.cs
- KeyPressEvent.cs
- LogWriteRestartAreaAsyncResult.cs
- BaseDataListComponentEditor.cs
- PrintingPermissionAttribute.cs
- Registry.cs
- ScriptComponentDescriptor.cs
- DataControlImageButton.cs
- WebCategoryAttribute.cs
- MetadataItemSerializer.cs
- ManipulationInertiaStartingEventArgs.cs
- CommandCollectionEditor.cs
- TextRunProperties.cs
- ComboBox.cs
- DataGridViewBand.cs
- XmlIncludeAttribute.cs
- FirstMatchCodeGroup.cs
- CodeAssignStatement.cs
- HttpWebResponse.cs
- ReferenceEqualityComparer.cs
- IndexOutOfRangeException.cs
- ResourceDefaultValueAttribute.cs
- DragDeltaEventArgs.cs
- HttpCapabilitiesEvaluator.cs
- DrawingBrush.cs
- TraceProvider.cs
- XmlSerializableWriter.cs
- SymDocumentType.cs
- SQLSingle.cs
- HtmlTableRow.cs
- ValidatorUtils.cs
- DataGridViewMethods.cs
- MemberDescriptor.cs
- RadioButtonList.cs
- TextBounds.cs
- MarginCollapsingState.cs
- DockingAttribute.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- OciHandle.cs
- DrawingContextDrawingContextWalker.cs
- SplayTreeNode.cs
- OleDbCommandBuilder.cs
- Win32SafeHandles.cs
- BrowserCapabilitiesCompiler.cs
- XslVisitor.cs
- ArgumentNullException.cs
- TriState.cs
- DelegatingTypeDescriptionProvider.cs
- ToolConsole.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- RegexParser.cs
- DesignerToolboxInfo.cs
- EntityTypeEmitter.cs
- CommonGetThemePartSize.cs
- WebPartsPersonalizationAuthorization.cs
- SoapInteropTypes.cs
- CompilerGlobalScopeAttribute.cs
- HtmlWindow.cs
- MessageSmuggler.cs
- NotImplementedException.cs
- ImportOptions.cs
- IisTraceListener.cs
- SqlEnums.cs
- SigningCredentials.cs