hard kill test on timeout during setup
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
This commit is contained in:
parent
04b48c0c3b
commit
637230c744
@ -1,5 +1,7 @@
|
|||||||
package electrosphere.engine.threads;
|
package electrosphere.engine.threads;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Semaphore;
|
import java.util.concurrent.Semaphore;
|
||||||
@ -82,6 +84,14 @@ public class ThreadManager {
|
|||||||
return loadingThreads.size() > 0;
|
return loadingThreads.size() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the list of loading threads
|
||||||
|
* @return The list of loading threads
|
||||||
|
*/
|
||||||
|
public List<LoadingThread> getLoadingThreads(){
|
||||||
|
return Collections.unmodifiableList(loadingThreads);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tries to close all threads
|
* Tries to close all threads
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -7,6 +7,9 @@ import electrosphere.engine.loadingthreads.LoadingThread;
|
|||||||
import electrosphere.engine.loadingthreads.LoadingThread.LoadingThreadType;
|
import electrosphere.engine.loadingthreads.LoadingThread.LoadingThreadType;
|
||||||
|
|
||||||
public class EngineInit {
|
public class EngineInit {
|
||||||
|
|
||||||
|
//The maximum number of frames to wait before failing the startup routine
|
||||||
|
public static final int MAX_FRAMES_TO_WAIT = 1000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setups up a locally-connected client and server that have loaded a test scene
|
* Setups up a locally-connected client and server that have loaded a test scene
|
||||||
@ -19,6 +22,7 @@ public class EngineInit {
|
|||||||
|
|
||||||
//
|
//
|
||||||
//wait for client to be fully init'd
|
//wait for client to be fully init'd
|
||||||
|
int frames = 0;
|
||||||
while(Globals.threadManager.isLoading()){
|
while(Globals.threadManager.isLoading()){
|
||||||
TestEngineUtils.simulateFrames(1);
|
TestEngineUtils.simulateFrames(1);
|
||||||
try {
|
try {
|
||||||
@ -26,6 +30,16 @@ public class EngineInit {
|
|||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
frames++;
|
||||||
|
if(frames > MAX_FRAMES_TO_WAIT){
|
||||||
|
String errorMessage = "Failed to setup connected test scene!\n" +
|
||||||
|
"Still running threads are:\n"
|
||||||
|
;
|
||||||
|
for(LoadingThread thread : Globals.threadManager.getLoadingThreads()){
|
||||||
|
errorMessage = errorMessage + thread.getType() + "\n";
|
||||||
|
}
|
||||||
|
throw new IllegalStateException(errorMessage);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user