- Implement destroy() in i2psnark to prevent dups
This commit is contained in:
@ -40,6 +40,8 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
private I2PSnarkUtil _util;
|
private I2PSnarkUtil _util;
|
||||||
private PeerCoordinatorSet _peerCoordinatorSet;
|
private PeerCoordinatorSet _peerCoordinatorSet;
|
||||||
private ConnectionAcceptor _connectionAcceptor;
|
private ConnectionAcceptor _connectionAcceptor;
|
||||||
|
private Thread _monitor;
|
||||||
|
private boolean _running;
|
||||||
|
|
||||||
public static final String PROP_I2CP_HOST = "i2psnark.i2cpHost";
|
public static final String PROP_I2CP_HOST = "i2psnark.i2cpHost";
|
||||||
public static final String PROP_I2CP_PORT = "i2psnark.i2cpPort";
|
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
|
* for i2cp host/port or i2psnark.dir
|
||||||
*/
|
*/
|
||||||
public void start() {
|
public void start() {
|
||||||
|
_running = true;
|
||||||
_peerCoordinatorSet = new PeerCoordinatorSet();
|
_peerCoordinatorSet = new PeerCoordinatorSet();
|
||||||
_connectionAcceptor = new ConnectionAcceptor(_util);
|
_connectionAcceptor = new ConnectionAcceptor(_util);
|
||||||
int minutes = getStartupDelayMinutes();
|
int minutes = getStartupDelayMinutes();
|
||||||
_messages.add(_("Adding torrents in {0} minutes", minutes));
|
_messages.add(_("Adding torrents in {0} minutes", minutes));
|
||||||
I2PAppThread monitor = new I2PAppThread(new DirMonitor(), "Snark DirMonitor");
|
_monitor = new I2PAppThread(new DirMonitor(), "Snark DirMonitor", true);
|
||||||
monitor.setDaemon(true);
|
_monitor.start();
|
||||||
monitor.start();
|
|
||||||
_context.addShutdownTask(new SnarkManagerShutdown());
|
_context.addShutdownTask(new SnarkManagerShutdown());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void stop() {
|
||||||
|
_running = false;
|
||||||
|
_monitor.interrupt();
|
||||||
|
_connectionAcceptor.halt();
|
||||||
|
(new SnarkManagerShutdown()).run();
|
||||||
|
}
|
||||||
|
|
||||||
/** hook to I2PSnarkUtil for the servlet */
|
/** hook to I2PSnarkUtil for the servlet */
|
||||||
public I2PSnarkUtil util() { return _util; }
|
public I2PSnarkUtil util() { return _util; }
|
||||||
|
@ -59,6 +59,12 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
_manager.start();
|
_manager.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void destroy() {
|
||||||
|
_manager.stop();
|
||||||
|
super.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||||
req.setCharacterEncoding("UTF-8");
|
req.setCharacterEncoding("UTF-8");
|
||||||
|
Reference in New Issue
Block a user