From dad2ebf69380aee818dc44b6d5738ef8e8ce91be Mon Sep 17 00:00:00 2001 From: William Muir Date: Wed, 16 Aug 2017 20:09:05 +1200 Subject: [PATCH] Fixed double thread issue! :D --- src/main/java/seng302/gameServer/GameState.java | 1 - src/main/java/seng302/gameServer/HeartbeatThread.java | 5 ++++- src/main/java/seng302/gameServer/MainServerThread.java | 9 ++------- src/main/java/seng302/gameServer/ServerListenThread.java | 5 ++++- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/seng302/gameServer/GameState.java b/src/main/java/seng302/gameServer/GameState.java index 18915274..e22ac8d9 100644 --- a/src/main/java/seng302/gameServer/GameState.java +++ b/src/main/java/seng302/gameServer/GameState.java @@ -91,7 +91,6 @@ public class GameState implements Runnable { resetStartTime(); - new Thread(this).start(); //Run the auto updates on the game state new Thread(this, "GameState").start(); //Run the auto updates on the game state marks = new MarkOrder().getAllMarks(); diff --git a/src/main/java/seng302/gameServer/HeartbeatThread.java b/src/main/java/seng302/gameServer/HeartbeatThread.java index b168a197..d0971cbc 100644 --- a/src/main/java/seng302/gameServer/HeartbeatThread.java +++ b/src/main/java/seng302/gameServer/HeartbeatThread.java @@ -13,7 +13,7 @@ import seng302.gameServer.server.messages.Message; * Will call .clientDisconnected on the delegate when a heartbeat message * cannot be sent to a player */ -public class HeartbeatThread extends Thread{ +public class HeartbeatThread implements Runnable { private final int HEARTBEAT_PERIOD = 200; private ClientConnectionDelegate delegate; private Integer seqNum; @@ -23,6 +23,9 @@ public class HeartbeatThread extends Thread{ this.delegate = delegate; seqNum = 0; disconnectedPlayers = new Stack<>(); + + Thread thread = new Thread(this, "HeartBeat"); + thread.start(); } /** diff --git a/src/main/java/seng302/gameServer/MainServerThread.java b/src/main/java/seng302/gameServer/MainServerThread.java index fe0d9017..e7e0bfc1 100644 --- a/src/main/java/seng302/gameServer/MainServerThread.java +++ b/src/main/java/seng302/gameServer/MainServerThread.java @@ -56,14 +56,9 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { public void run() { - ServerListenThread serverListenThread; - HeartbeatThread heartbeatThread; - serverListenThread = new ServerListenThread(serverSocket, this); - heartbeatThread = new HeartbeatThread(this); - - heartbeatThread.start(); - serverListenThread.start(); + new HeartbeatThread(this); + new ServerListenThread(serverSocket, this); //You should handle interrupts in some way, so that the thread won't keep on forever if you exit the app. while (!terminated) { diff --git a/src/main/java/seng302/gameServer/ServerListenThread.java b/src/main/java/seng302/gameServer/ServerListenThread.java index 60469bb7..e05b76a9 100644 --- a/src/main/java/seng302/gameServer/ServerListenThread.java +++ b/src/main/java/seng302/gameServer/ServerListenThread.java @@ -8,13 +8,16 @@ import java.net.Socket; * A class for a thread to listen to connections * Created by wmu16 on 11/07/17. */ -public class ServerListenThread extends Thread{ +public class ServerListenThread implements Runnable { private ServerSocket serverSocket; private ClientConnectionDelegate delegate; public ServerListenThread(ServerSocket serverSocket, ClientConnectionDelegate delegate){ this.serverSocket = serverSocket; this.delegate = delegate; + + Thread thread = new Thread(this, "ServerListen"); + thread.start(); } /**