code: public void stop()
          throws InterruptedException
      {
          synchronized(this)
          {
              _running--;
              if (_running>0)
                  return;
              notifyAll();
          }
          
          if (_pondLife!=null && _size>0)
          {
              for (int i=0;i<_pondLife.length;i++)
                  closePondLife(i);
              Thread.yield();
              for (int i=0;i<_pondLife.length;i++)
                  stopPondLife(i);
          }
  
          synchronized(this)
          {
              _pondLife=null;
              _index=null;
              _size=0;
              _available=0;
          }
      }
docs: /* ------------------------------------------------------------