create an error type for when the server kills the render (before it was part of NOOUTPUTFILE)
This commit is contained in:
@@ -497,7 +497,7 @@ public class Client {
|
|||||||
// no exception should be raised to actual launcher (applet or standalone)
|
// no exception should be raised to actual launcher (applet or standalone)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (error != null && (error == Error.Type.RENDERER_CRASHED || error == Error.Type.RENDERER_KILLED_BY_USER)) {
|
if (error != null && (error == Error.Type.RENDERER_CRASHED || error == Error.Type.RENDERER_KILLED_BY_USER || error == Error.Type.RENDERER_KILLED_BY_SERVER)) {
|
||||||
// do nothing, we can ask for a job right away
|
// do nothing, we can ask for a job right away
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ public class Error {
|
|||||||
RENDERER_OUT_OF_MEMORY(21),
|
RENDERER_OUT_OF_MEMORY(21),
|
||||||
RENDERER_KILLED(14),
|
RENDERER_KILLED(14),
|
||||||
RENDERER_KILLED_BY_USER(20),
|
RENDERER_KILLED_BY_USER(20),
|
||||||
|
RENDERER_KILLED_BY_SERVER(22),
|
||||||
RENDERER_MISSING_LIBRARIES(15),
|
RENDERER_MISSING_LIBRARIES(15),
|
||||||
FAILED_TO_EXECUTE(16),
|
FAILED_TO_EXECUTE(16),
|
||||||
OS_NOT_SUPPORTED(17),
|
OS_NOT_SUPPORTED(17),
|
||||||
@@ -170,6 +171,8 @@ public class Error {
|
|||||||
return "The renderer stopped because either you asked to stop or the server did (usually for a render time too high).";
|
return "The renderer stopped because either you asked to stop or the server did (usually for a render time too high).";
|
||||||
case RENDERER_KILLED_BY_USER:
|
case RENDERER_KILLED_BY_USER:
|
||||||
return "The renderer stopped because you've blocked its project.";
|
return "The renderer stopped because you've blocked its project.";
|
||||||
|
case RENDERER_KILLED_BY_SERVER:
|
||||||
|
return "The renderer stopped because it's been killed by the server. Usually because the project will take too much time or it's been paused.";
|
||||||
case SESSION_DISABLED:
|
case SESSION_DISABLED:
|
||||||
return "The server has disabled your session. Your client may have generated a broken frame (GPU not compatible, not enough RAM/VRAM, etc).";
|
return "The server has disabled your session. Your client may have generated a broken frame (GPU not compatible, not enough RAM/VRAM, etc).";
|
||||||
case RENDERER_NOT_AVAILABLE:
|
case RENDERER_NOT_AVAILABLE:
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ public class Job {
|
|||||||
private RenderProcess render;
|
private RenderProcess render;
|
||||||
private boolean askForRendererKill;
|
private boolean askForRendererKill;
|
||||||
private boolean userBlockJob;
|
private boolean userBlockJob;
|
||||||
|
private boolean serverBlockJob;
|
||||||
private Gui gui;
|
private Gui gui;
|
||||||
private Configuration config;
|
private Configuration config;
|
||||||
private Log log;
|
private Log log;
|
||||||
@@ -86,6 +87,7 @@ public class Job {
|
|||||||
updateRenderingStatusMethod = update_method_;
|
updateRenderingStatusMethod = update_method_;
|
||||||
askForRendererKill = false;
|
askForRendererKill = false;
|
||||||
userBlockJob = false;
|
userBlockJob = false;
|
||||||
|
serverBlockJob = false;
|
||||||
log = log_;
|
log = log_;
|
||||||
render = new RenderProcess();
|
render = new RenderProcess();
|
||||||
}
|
}
|
||||||
@@ -146,6 +148,14 @@ public class Job {
|
|||||||
return userBlockJob;
|
return userBlockJob;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setServerBlockJob(boolean val) {
|
||||||
|
serverBlockJob = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getServerBlockJob() {
|
||||||
|
return serverBlockJob;
|
||||||
|
}
|
||||||
|
|
||||||
public String getRenderCommand() {
|
public String getRenderCommand() {
|
||||||
return rendererCommand;
|
return rendererCommand;
|
||||||
}
|
}
|
||||||
@@ -346,6 +356,9 @@ public class Job {
|
|||||||
if (files.length != 0) {
|
if (files.length != 0) {
|
||||||
new File(files[0].getAbsolutePath()).delete();
|
new File(files[0].getAbsolutePath()).delete();
|
||||||
}
|
}
|
||||||
|
if (getServerBlockJob()) {
|
||||||
|
return Error.Type.RENDERER_KILLED_BY_SERVER;
|
||||||
|
}
|
||||||
if (getUserBlockJob()) {
|
if (getUserBlockJob()) {
|
||||||
return Error.Type.RENDERER_KILLED_BY_USER;
|
return Error.Type.RENDERER_KILLED_BY_USER;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -139,6 +139,7 @@ public class Server extends Thread implements HostnameVerifier, X509TrustManager
|
|||||||
this.log.debug("Server::keeepmealive server asked to kill local render process");
|
this.log.debug("Server::keeepmealive server asked to kill local render process");
|
||||||
// kill the current process, it will generate an error but it's okay
|
// kill the current process, it will generate an error but it's okay
|
||||||
if (this.client != null && this.client.getRenderingJob() != null && this.client.getRenderingJob().getProcessRender().getProcess() != null) {
|
if (this.client != null && this.client.getRenderingJob() != null && this.client.getRenderingJob().getProcessRender().getProcess() != null) {
|
||||||
|
this.client.getRenderingJob().setServerBlockJob(true);
|
||||||
OS.getOS().kill(this.client.getRenderingJob().getProcessRender().getProcess());
|
OS.getOS().kill(this.client.getRenderingJob().getProcessRender().getProcess());
|
||||||
this.client.getRenderingJob().setAskForRendererKill(true);
|
this.client.getRenderingJob().setAskForRendererKill(true);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user