serverStopping = true;
if(reaper != null) reaper.stop();
   public void stop()   {      serverStopping = true;      // Stop the main selector      m_acceptSelector.wakeup();      // Stop selector threads      for (int i = 0; i < m_readHandlers.length; i++)      {         try         {            m_readHandlers[i].add(new Shutdown());         } catch (InterruptedException e)         {            LOG.error("Thread ("+Thread.currentThread().getName() +") was interrupted, failed to shutdown selector", e);         }      }      for (int i = 0; i < m_writeHandlers.length; i++)      {         try         {            m_writeHandlers[i].QUEUE.put(new Shutdown());            m_writeHandlers[i].SELECTOR.wakeup();         } catch (InterruptedException e)         {            LOG.error("Thread ("+Thread.currentThread().getName() +") was interrupted, failed to shutdown selector", e);         }      }      // Stop the callback thread pool      if(m_requestProcessors instanceof PooledExecutor)         ((PooledExecutor)m_requestProcessors).shutdownNow();      // then close the connections      synchronized(conns) {          Iterator it=conns.values().iterator();          while(it.hasNext()) {              Connection conn=(Connection)it.next();              conn.destroy();          }          conns.clear();      }   }