- Implement destroy() in i2psnark to prevent dups

This commit is contained in:
zzz
2010-03-29 21:14:35 +00:00
parent e31c0636ab
commit 394903a8f0
2 changed files with 18 additions and 3 deletions

View File

@ -40,6 +40,8 @@ public class SnarkManager implements Snark.CompleteListener {
private I2PSnarkUtil _util;
private PeerCoordinatorSet _peerCoordinatorSet;
private ConnectionAcceptor _connectionAcceptor;
private Thread _monitor;
private boolean _running;
public static final String PROP_I2CP_HOST = "i2psnark.i2cpHost";
public static final String PROP_I2CP_PORT = "i2psnark.i2cpPort";
@ -78,15 +80,22 @@ public class SnarkManager implements Snark.CompleteListener {
* for i2cp host/port or i2psnark.dir
*/
public void start() {
_running = true;
_peerCoordinatorSet = new PeerCoordinatorSet();
_connectionAcceptor = new ConnectionAcceptor(_util);
int minutes = getStartupDelayMinutes();
_messages.add(_("Adding torrents in {0} minutes", minutes));
I2PAppThread monitor = new I2PAppThread(new DirMonitor(), "Snark DirMonitor");
monitor.setDaemon(true);
monitor.start();
_monitor = new I2PAppThread(new DirMonitor(), "Snark DirMonitor", true);
_monitor.start();
_context.addShutdownTask(new SnarkManagerShutdown());
}
public void stop() {
_running = false;
_monitor.interrupt();
_connectionAcceptor.halt();
(new SnarkManagerShutdown()).run();
}
/** hook to I2PSnarkUtil for the servlet */
public I2PSnarkUtil util() { return _util; }

View File

@ -59,6 +59,12 @@ public class I2PSnarkServlet extends HttpServlet {
_manager.start();
}
@Override
public void destroy() {
_manager.stop();
super.destroy();
}
@Override
public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");