From 54de0442296cdb195759d1f3ed56f77f77348bf0 Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Fri, 10 Nov 2023 17:27:54 +0100 Subject: [PATCH] Allow updated jagidir modules to be formally disposed. --- src/jagi/fs/Compiler.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/jagi/fs/Compiler.java b/src/jagi/fs/Compiler.java index 60a1c24..b277e00 100644 --- a/src/jagi/fs/Compiler.java +++ b/src/jagi/fs/Compiler.java @@ -3,12 +3,14 @@ package jagi.fs; import jagi.*; import java.util.*; import java.util.regex.*; +import java.util.logging.*; import java.nio.file.*; import java.nio.file.attribute.*; import java.io.*; import java.net.*; public class Compiler { + private static final Logger log = Logger.getLogger("jagi-fs"); private final Map files = new HashMap<>(); private final Map libs = new HashMap<>(); private final Collection searchpath = new ArrayList<>(); @@ -323,8 +325,16 @@ public class Compiler { synchronized(this) { FileTime mtime = Files.getLastModifiedTime(name); if((this.mtime == null) || (this.mtime.compareTo(mtime) < 0)) { - mod = new Module(name); + Module pmod = this.mod; + this.mod = new Module(name); this.mtime = mtime; + if(pmod instanceof AutoCloseable) { + try { + ((AutoCloseable)pmod).close(); + } catch(Exception e) { + log.log(Level.WARNING, String.format("Error when disposing updated module %s", pmod.file), e); + } + } } } } -- 2.11.0