void (boolean aborted, int errors, int warnings, @NotNull CompileContext compileContext) { try { if (aborted) { Assert.fail("compilation aborted"); } ExitStatus status = CompileDriver.getExternalBuildExitStatus(compileContext); result.set(new CompilationLog(status == ExitStatus.UP_TO_DATE, generatedFilePaths, compileContext.getMessages(CompilerMessageCategory.ERROR), compileContext.getMessages(CompilerMessageCategory.WARNING))); } finally { semaphore.up(); } }