Simply shutting down the ExecutorService that runs the server doesn't work:
public static void main(String[] args) throws Exception {
ExecutorService executor = Executors.newCachedThreadPool();
WebfilesServer server =
DaggerWebfilesServer_Server.builder()
.args(ImmutableList.of(serverConfig))
.executor(executor)
.fs(FileSystems.getDefault())
.serverSocketFactory(ServerSocketFactory.getDefault())
.build()
.server();
server.spawn();
executor.shutdownNow();
// at this point, the server is still running
}
WebfilesServer also contains MetadataLoader and MetadataReloader instances that also implement Runnable and loop infinitely. Some work needs to be done to break the loops and release the resources properly.
The WebfilesServer currently lacks a shutdown method.
Simply shutting down the ExecutorService that runs the server doesn't work:
WebfilesServer also contains MetadataLoader and MetadataReloader instances that also implement Runnable and loop infinitely. Some work needs to be done to break the loops and release the resources properly.