wait on threads to join in engine shutdown
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
ff59891c39
commit
ab00782e93
@ -635,6 +635,9 @@ Quitting to main menu
|
||||
Server utilities provided to scripting engine
|
||||
Spawn player character with weapon when testing levels
|
||||
|
||||
(08/26/2024)
|
||||
Automated testing fixes
|
||||
|
||||
|
||||
# TODO
|
||||
|
||||
|
||||
@ -432,10 +432,10 @@ public class Main {
|
||||
if(!Globals.HEADLESS && Globals.RUN_CLIENT){
|
||||
glfwTerminate();
|
||||
}
|
||||
//reset globals
|
||||
Globals.resetGlobals();
|
||||
//used to signal threads to stop
|
||||
Globals.threadManager.close();
|
||||
//reset globals for good measure (making sure no long-running threads can re-inject entities into scenes)
|
||||
Globals.resetGlobals();
|
||||
//shut down audio engine
|
||||
if(!Globals.HEADLESS && Globals.RUN_CLIENT && Globals.RUN_AUDIO && Globals.audioEngine != null && Globals.audioEngine.initialized()){
|
||||
Globals.audioEngine.shutdown();
|
||||
|
||||
@ -99,6 +99,14 @@ public class ThreadManager {
|
||||
for(int i = 0; i < 3; i++){
|
||||
for(LabeledThread thread : activeThreads){
|
||||
thread.getThread().interrupt();
|
||||
try {
|
||||
thread.getThread().join(10);
|
||||
if(thread.getThread().isAlive()){
|
||||
throw new IllegalStateException("Failed to interrupt thread! " + thread.getLabel());
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
CodeUtils.todo(e, "Think about how to handle this");
|
||||
}
|
||||
}
|
||||
try {
|
||||
TimeUnit.MILLISECONDS.sleep(3);
|
||||
|
||||
@ -173,7 +173,7 @@ public class Server implements Runnable {
|
||||
for(ServerConnectionHandler connection : this.connectionsToCleanup){
|
||||
//tell all clients to destroy the entity
|
||||
Player player = connection.getPlayer();
|
||||
if(player != null){
|
||||
if(player != null && player.getPlayerEntity() != null){
|
||||
ServerEntityUtils.destroyEntity(player.getPlayerEntity());
|
||||
}
|
||||
this.activeConnections.remove(connection);
|
||||
|
||||
@ -655,7 +655,7 @@ public class RenderingEngine {
|
||||
public void checkError(){
|
||||
int error = this.getError();
|
||||
if(error != GL11.GL_NO_ERROR){
|
||||
// LoggerInterface.loggerRenderer.ERROR("checkError - " + getErrorInEnglish(error), new IllegalStateException("OpenGL Error"));
|
||||
LoggerInterface.loggerRenderer.ERROR("checkError - " + getErrorInEnglish(error), new IllegalStateException("OpenGL Error"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@ public class RenderingExtension implements BeforeEachCallback, AfterEachCallback
|
||||
public void beforeEach(ExtensionContext context) throws Exception {
|
||||
Globals.WINDOW_DECORATED = false;
|
||||
Globals.WINDOW_FULLSCREEN = true;
|
||||
Globals.RUN_AUDIO = false;
|
||||
Globals.WINDOW_WIDTH = 1920;
|
||||
Globals.WINDOW_HEIGHT = 1080;
|
||||
TestEngineUtils.initGraphicalEngine();
|
||||
|
||||
@ -29,7 +29,7 @@ public class TestEngineUtils {
|
||||
public static void initGraphicalEngine(){
|
||||
Globals.RUN_CLIENT = true;
|
||||
Globals.RUN_SERVER = true;
|
||||
Globals.RUN_AUDIO = true;
|
||||
Globals.RUN_AUDIO = false;
|
||||
Globals.HEADLESS = false;
|
||||
Profiler.PROFILE = false;
|
||||
NetUtils.setPort(0);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user