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)); }