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 inputFile = new File("wfx_input" + inputExtension).toPath().toAbsolutePath();
|
||||||
var outputFile = new File("wfx_output" + outputExtension);
|
var outputFile = new File("wfx_output" + outputExtension);
|
||||||
var outputFilePath = outputFile.toPath().toAbsolutePath();
|
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();
|
var result = new WaifuResult();
|
||||||
result.filename = outputFile.getName();
|
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() {
|
var outputBytes = new ByteArrayOutputStream() {
|
||||||
@Override
|
@Override
|
||||||
public synchronized byte[] toByteArray() {
|
public synchronized byte[] toByteArray() {
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Files.copy(outputFilePath, outputBytes);
|
synchronized (GPULock) {
|
||||||
Files.delete(outputFilePath);
|
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.image = new ByteArrayInputStream(outputBytes.toByteArray(), 0, outputBytes.size());
|
||||||
result.size = outputBytes.size();
|
result.size = outputBytes.size();
|
||||||
return result;
|
return result;
|
||||||
|
|
Reference in a new issue