_Semaphore.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / Net / _Semaphore.cs / 1 / _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); 
        } 
        */
    } 
}
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK