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
- GeneratedView.cs
- LineGeometry.cs
- WorkflowInstanceExtensionManager.cs
- RecipientInfo.cs
- DataGridPagerStyle.cs
- HtmlElementEventArgs.cs
- Solver.cs
- XPathChildIterator.cs
- NetDataContractSerializer.cs
- ActivityDesigner.cs
- XomlCompiler.cs
- MergeLocalizationDirectives.cs
- QilVisitor.cs
- Visitors.cs
- Clock.cs
- HotSpotCollection.cs
- SetState.cs
- MemberDomainMap.cs
- DbConnectionHelper.cs
- LostFocusEventManager.cs
- RequestQueryProcessor.cs
- OutputCacheSection.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- DataSourceSelectArguments.cs
- ServiceKnownTypeAttribute.cs
- TextTreeRootNode.cs
- HttpContextBase.cs
- Emitter.cs
- GroupLabel.cs
- DataMember.cs
- NativeMethods.cs
- XmlDocumentSchema.cs
- StandardMenuStripVerb.cs
- XmlWriterTraceListener.cs
- IgnoreDataMemberAttribute.cs
- HtmlTable.cs
- XmlAttributeOverrides.cs
- Cursors.cs
- DesignerActionItem.cs
- Error.cs
- Substitution.cs
- QilScopedVisitor.cs
- DropDownHolder.cs
- AppDomainManager.cs
- ProxyManager.cs
- XmlQueryContext.cs
- Mutex.cs
- NetTcpSectionData.cs
- SecurityUniqueId.cs
- BuildResultCache.cs
- FixedSOMTableRow.cs
- Mapping.cs
- NodeInfo.cs
- SqlRowUpdatingEvent.cs
- ChangeNode.cs
- MessageUtil.cs
- CompilerCollection.cs
- OutOfMemoryException.cs
- WorkflowDesignerColors.cs
- InstalledFontCollection.cs
- QilName.cs
- XPathSingletonIterator.cs
- BaseConfigurationRecord.cs
- MsmqIntegrationProcessProtocolHandler.cs
- LookupBindingPropertiesAttribute.cs
- HttpCookiesSection.cs
- ValueHandle.cs
- ProfilePropertySettings.cs
- ThousandthOfEmRealDoubles.cs
- InstancePersistenceCommandException.cs
- WebPartConnectionCollection.cs
- HtmlSelect.cs
- XmlSchemaCompilationSettings.cs
- WebServicesInteroperability.cs
- HTMLTextWriter.cs
- Storyboard.cs
- StringFunctions.cs
- TraceListener.cs
- ContractUtils.cs
- SqlError.cs
- DataGridViewMethods.cs
- pingexception.cs
- RuntimeEnvironment.cs
- OdbcException.cs
- WindowPatternIdentifiers.cs
- WebPartsSection.cs
- DynamicRouteExpression.cs
- FileDataSourceCache.cs
- DebugView.cs
- ReliableMessagingVersion.cs
- CompatibleIComparer.cs
- BamlBinaryReader.cs
- OdbcError.cs
- SqlMetaData.cs
- Int32CAMarshaler.cs
- ObjectHandle.cs
- DrawingContextWalker.cs
- ScriptBehaviorDescriptor.cs
- ReadOnlyDictionary.cs
- IndexedString.cs