Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / _Semaphore.cs / 1305376 / _Semaphore.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- #pragma warning disable 618 namespace System.Net { using System; using System.Threading; using System.Security.Permissions; // used for Connection Pooling internal sealed class Semaphore : WaitHandle { internal Semaphore(int initialCount, int maxCount) : base() { lock (this) { // Handle = UnsafeNclNativeMethods.CreateSemaphore(IntPtr.Zero, initialCount, maxCount, IntPtr.Zero); } } /* // Consider removing. public Semaphore(int initialCount, int maxCount, string name) : base() { lock (this) { // */ internal bool ReleaseSemaphore() { #if DEBUG int previousCount; bool success = UnsafeNclNativeMethods.ReleaseSemaphore(Handle, 1, out previousCount); GlobalLog.Print("ReleaseSemaphore#"+ValidationHelper.HashString(this)+" success:"+success+" previousCount:"+previousCount.ToString()); return success; #else return UnsafeNclNativeMethods.ReleaseSemaphore(Handle, 1, IntPtr.Zero); #endif } /* // Consider removing. internal bool ReleaseSemaphore(int releaseCount, out int previousCount) { return UnsafeNclNativeMethods.ReleaseSemaphore(Handle, releaseCount, out previousCount); } */ } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- #pragma warning disable 618 namespace System.Net { using System; using System.Threading; using System.Security.Permissions; // used for Connection Pooling internal sealed class Semaphore : WaitHandle { internal Semaphore(int initialCount, int maxCount) : base() { lock (this) { // Handle = UnsafeNclNativeMethods.CreateSemaphore(IntPtr.Zero, initialCount, maxCount, IntPtr.Zero); } } /* // Consider removing. public Semaphore(int initialCount, int maxCount, string name) : base() { lock (this) { // */ internal bool ReleaseSemaphore() { #if DEBUG int previousCount; bool success = UnsafeNclNativeMethods.ReleaseSemaphore(Handle, 1, out previousCount); GlobalLog.Print("ReleaseSemaphore#"+ValidationHelper.HashString(this)+" success:"+success+" previousCount:"+previousCount.ToString()); return success; #else return UnsafeNclNativeMethods.ReleaseSemaphore(Handle, 1, IntPtr.Zero); #endif } /* // Consider removing. internal bool ReleaseSemaphore(int releaseCount, out int previousCount) { return UnsafeNclNativeMethods.ReleaseSemaphore(Handle, releaseCount, out previousCount); } */ } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StrokeNodeEnumerator.cs
- TransformGroup.cs
- MembershipValidatePasswordEventArgs.cs
- SHA512Cng.cs
- SqlXmlStorage.cs
- _ConnectionGroup.cs
- XmlHierarchicalDataSourceView.cs
- XmlSchemaObjectCollection.cs
- ValidatedControlConverter.cs
- ProfileServiceManager.cs
- ScaleTransform3D.cs
- SubMenuStyle.cs
- BamlLocalizableResourceKey.cs
- WebControlAdapter.cs
- CachedBitmap.cs
- TextRunTypographyProperties.cs
- OleDbDataReader.cs
- EntityParameterCollection.cs
- UnsignedPublishLicense.cs
- EncoderBestFitFallback.cs
- Geometry.cs
- TagNameToTypeMapper.cs
- KnownColorTable.cs
- PolicyImporterElement.cs
- DispatcherExceptionFilterEventArgs.cs
- AbstractExpressions.cs
- Model3D.cs
- ExpressionBuilder.cs
- EntityTransaction.cs
- ImageAutomationPeer.cs
- EntityModelSchemaGenerator.cs
- RequestedSignatureDialog.cs
- RMPermissions.cs
- CodeArrayCreateExpression.cs
- SettingsSavedEventArgs.cs
- WinFormsSecurity.cs
- PointAnimationUsingPath.cs
- HttpProfileGroupBase.cs
- AppModelKnownContentFactory.cs
- GroupStyle.cs
- XmlILAnnotation.cs
- ListViewInsertedEventArgs.cs
- GetCardDetailsRequest.cs
- Positioning.cs
- DataGridViewCellStateChangedEventArgs.cs
- UnsettableComboBox.cs
- XmlHierarchyData.cs
- LoginNameDesigner.cs
- FileNotFoundException.cs
- RenderingEventArgs.cs
- FillErrorEventArgs.cs
- TaskFormBase.cs
- HtmlInputFile.cs
- TypeSource.cs
- SelectionEditor.cs
- PointCollection.cs
- BitmapSourceSafeMILHandle.cs
- DrawListViewSubItemEventArgs.cs
- WindowsUpDown.cs
- IxmlLineInfo.cs
- IntranetCredentialPolicy.cs
- CustomBinding.cs
- RawTextInputReport.cs
- DotExpr.cs
- ValueChangedEventManager.cs
- SchemaElementDecl.cs
- SpinWait.cs
- TextComposition.cs
- HWStack.cs
- SecurityTokenRequirement.cs
- GetImportedCardRequest.cs
- TypeUtil.cs
- CommandHelper.cs
- VisualStyleTypesAndProperties.cs
- Persist.cs
- oledbmetadatacollectionnames.cs
- ProfileSection.cs
- ManipulationLogic.cs
- DnsPermission.cs
- WebPartsPersonalization.cs
- HttpModuleCollection.cs
- securestring.cs
- DynamicRendererThreadManager.cs
- Compiler.cs
- WindowsBrush.cs
- PageCopyCount.cs
- WindowsStartMenu.cs
- HttpCapabilitiesEvaluator.cs
- FlowNode.cs
- DodSequenceMerge.cs
- DataViewSetting.cs
- NativeMethods.cs
- LingerOption.cs
- FileDataSourceCache.cs
- ToolStripItemClickedEventArgs.cs
- ControlBindingsCollection.cs
- RequestStatusBarUpdateEventArgs.cs
- FilePresentation.cs
- OutputScopeManager.cs
- FormViewUpdateEventArgs.cs