Fix GPU lock
This commit is contained in:
parent
8212aef0ee
commit
6d39b3ebd3
|
@ -35,28 +35,27 @@ public class Waifu2x {
|
|||
var inputFile = new File("wfx_input" + inputExtension).toPath().toAbsolutePath();
|
||||
var outputFile = new File("wfx_output" + outputExtension);
|
||||
var outputFilePath = outputFile.toPath().toAbsolutePath();
|
||||
log.info("Starting processing %s image with options noise=%c scale=%c output=%s".formatted(inputExtension, noise, scale, outputExtension));
|
||||
Files.deleteIfExists(inputFile);
|
||||
Files.copy(inputImage, inputFile);
|
||||
Process waifuProcess;
|
||||
synchronized (GPULock) {
|
||||
waifuProcess = new ProcessBuilder(ExecutablePath.toString(), "-s", Character.toString(scale), "-n",
|
||||
Character.toString(noise), "-i", inputFile.toString(), "-o", outputFilePath.toString()).start();
|
||||
waifuProcess.waitFor();
|
||||
}
|
||||
var result = new WaifuResult();
|
||||
result.filename = outputFile.getName();
|
||||
Files.delete(inputFile);
|
||||
log.info(result.stdout = new String(waifuProcess.getErrorStream().readAllBytes(), StandardCharsets.UTF_8));
|
||||
if (!(result.success = outputFile.isFile())) return result;
|
||||
var outputBytes = new ByteArrayOutputStream() {
|
||||
@Override
|
||||
public synchronized byte[] toByteArray() {
|
||||
return buf;
|
||||
}
|
||||
};
|
||||
Files.copy(outputFilePath, outputBytes);
|
||||
Files.delete(outputFilePath);
|
||||
synchronized (GPULock) {
|
||||
log.info("Starting processing %s image with options noise=%c scale=%c output=%s".formatted(inputExtension, noise, scale, outputExtension));
|
||||
Files.deleteIfExists(inputFile);
|
||||
Files.copy(inputImage, inputFile);
|
||||
var waifuProcess = new ProcessBuilder(ExecutablePath.toString(), "-s", Character.toString(scale), "-n",
|
||||
Character.toString(noise), "-i", inputFile.toString(), "-o", outputFilePath.toString()).start();
|
||||
waifuProcess.waitFor();
|
||||
Files.delete(inputFile);
|
||||
log.info(result.stdout = new String(waifuProcess.getErrorStream().readAllBytes(), StandardCharsets.UTF_8));
|
||||
if (!(result.success = outputFile.isFile())) return result;
|
||||
Files.copy(outputFilePath, outputBytes);
|
||||
Files.delete(outputFilePath);
|
||||
}
|
||||
result.image = new ByteArrayInputStream(outputBytes.toByteArray(), 0, outputBytes.size());
|
||||
result.size = outputBytes.size();
|
||||
return result;
|
||||
|
|
Reference in a new issue