// FREEHEP added synchronized
 public synchronized void update(TargetInfo linkTarget) {
   File outputFile = linkTarget.getOutput();
   String outputName = outputFile.getName();
   //
   //   if output file doesn't exist or predates the start of the
   //        compile or link step (most likely a compilation error) then
   //        do not write add a history entry
   //
   if (outputFile.exists()
       && !CUtil.isSignificantlyBefore(outputFile.lastModified(), historyFile.lastModified())) {
     dirty = true;
     history.remove(outputName);
     SourceHistory[] sourceHistories = linkTarget.getSourceHistories(outputDirPath);
     TargetHistory newHistory =
         new TargetHistory(
             linkTarget.getConfiguration().getIdentifier(),
             outputName,
             outputFile.lastModified(),
             sourceHistories);
     history.put(outputName, newHistory);
   }
 }