예제 #1
0
        EndpointAddressProcessor CreateProcessor(int length)
        {
            if (processorPool.Target != null)
            {
                lock (processorPool)
                {
                    object o = processorPool.Target;
                    if (o != null)
                    {
                        EndpointAddressProcessor p = (EndpointAddressProcessor)o;
                        processorPool.Target = p.Next;
                        p.Next = null;
                        p.Clear(length);
                        return(p);
                    }
                }
            }

            return(new EndpointAddressProcessor(length));
        }
        EndpointAddressProcessor CreateProcessor(int length)
        {
            EndpointAddressProcessor p = null;

            lock (processorPool)
            {
                ProcessorPool pool = processorPool.Target as ProcessorPool;
                if (null != pool)
                {
                    p = pool.Pop();
                }
            }

            if (null != p)
            {
                p.Clear(length);
                return(p);
            }

            return(new EndpointAddressProcessor(length));
        }