Exemplo n.º 1
0
 /**
  * Stop contacting the tracker and talking with peers
  *
  * @param fast if true, limit the life of the unannounce threads
  * @since 0.9.1
  */
 public synchronized void stopTorrent(boolean fast) {
   stopped = true;
   TrackerClient tc = trackerclient;
   if (tc != null) tc.halt(fast);
   PeerCoordinator pc = coordinator;
   if (pc != null) pc.halt();
   Storage st = storage;
   if (st != null) {
     // TODO: Cache the config-in-mem to compare vs config-on-disk
     // (needed for auto-save to not double-save in some cases)
     // boolean changed = storage.isChanged() || getUploaded() != savedUploaded;
     boolean changed = true;
     try {
       storage.close();
     } catch (IOException ioe) {
       System.out.println("Error closing " + torrent);
       ioe.printStackTrace();
     }
     if (changed && completeListener != null) completeListener.updateStatus(this);
   }
   if (pc != null && _peerCoordinatorSet != null) _peerCoordinatorSet.remove(pc);
   if (_peerCoordinatorSet == null) _util.disconnect();
 }