X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fdolda%2Fjsvc%2Fscgi%2FDirServer.java;h=d238504afe1b8bdca26e56138b975ad5de891ab3;hb=0de513742ae180a370c7836aa285cc82a8e95f22;hp=7920977a91c67102e3b11275749d0df5c757ac5f;hpb=22779185ec3cd3ab6fafdbcbe675161ceae9ce7d;p=jsvc.git diff --git a/src/dolda/jsvc/scgi/DirServer.java b/src/dolda/jsvc/scgi/DirServer.java index 7920977..d238504 100644 --- a/src/dolda/jsvc/scgi/DirServer.java +++ b/src/dolda/jsvc/scgi/DirServer.java @@ -24,7 +24,7 @@ public class DirServer extends Server { String act = "loaded %s as %s"; if(ctx != null) { if(ctx.mtime < file.lastModified()) { - ctx.tg.destroy(); + ctx.tg.shutdown(); contexts.remove(file); ctx = null; act = "reloaded %s as %s"; @@ -51,6 +51,17 @@ public class DirServer extends Server { RequestThread w = ctx.tg.respond(req); w.start(); } + + protected void shutdown() { + synchronized(contexts) { + for(Iterator> i = contexts.entrySet().iterator(); i.hasNext();) { + Map.Entry e = i.next(); + DSContext ctx = e.getValue(); + i.remove(); + ctx.tg.shutdown(); + } + } + } private static void usage(PrintStream out) { out.println("usage: dolda.jsvc.scgi.DirServer [-h] [-e CHARSET] [-d DATADIR] PORT");