/***************************************
 *                                     *
 *  JBoss: The OpenSource J2EE WebOS   *
 *                                     *
 *  Distributable under LGPL license.  *
 *  See terms of license at gnu.org.   *
 *                                     *
 ***************************************/

package org.jboss.remoting.transport.socket;


import org.jboss.util.LRUCachePolicy;

/**
 * This class is an extention of LRUCachePolicy.  On a entry removal
 * it makes sure to call shutdown on the pooled ServerThread
 *
 * @author <a href="mailto:bill@jboss.org">Bill Burke</a>
 */
public class LRUPool extends LRUCachePolicy
{
   public LRUPool(int min, int max)
   {
      super(min, max);
   }

   protected void entryRemoved(LRUCacheEntry entry)
   {
      ServerThread thread = (ServerThread) entry.m_object;
      thread.evict();
   }

   public void evict()
   {
      // the entry will be removed by ageOut
      ServerThread thread = (ServerThread) m_list.m_tail.m_object;
      thread.evict();
   }

}