Skip to content

Commit 23bdaf3

Browse files
author
magiclu550
committed
[commit] #1061 rpc zombie thread is really killed.
1 parent a094fdc commit 23bdaf3

3 files changed

Lines changed: 11 additions & 12 deletions

File tree

JPLS/src/main/java/cn/jsmod2/DefaultServer.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@ public void registerTemplates(List<RegisterTemplate> registers,Server server) {
153153
}
154154

155155

156-
157-
156+
@Override
157+
public void close() {
158+
if(ServerStarter.getInstance().getWebServer()!=null)
159+
ServerStarter.getInstance().getWebServer().shutdown();
160+
super.close();
161+
}
158162
}

JPLS/src/main/java/cn/jsmod2/RPCHandler.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class RPCHandler{
4444

4545
/**
4646
* 可以用于开启服务端(即开启web,log监听器,数据包监听器,事件调度器和指令调度器)
47-
* 并开启心跳监听
47+
* 并开启心跳监听,如果心跳监听超过5s没有反应则为超时,将关闭服务器
4848
* @param sw 启动选项,以数字代替
4949
* <code>
5050
* .replace("1","-w")
@@ -82,15 +82,6 @@ public String start(String sw){
8282
Utils.printException(e);
8383
}
8484
}).start();
85-
new Thread(()->{
86-
while (Server.getSender()!=null&&!Server.getSender().getServer().isConnected);
87-
try{
88-
if(!Server.getSender().getServer().isConnected)ServerStarter.getInstance().getWebServer().shutdown();
89-
}catch (Exception e){
90-
Utils.printException(e);
91-
}
92-
93-
});
9485
}
9586

9687
return "server has started";

JPLS/src/main/java/cn/jsmod2/ServerStarter.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,10 @@ public static ServerStarter getInstance() {
144144
return instance;
145145
}
146146

147+
/**
148+
* RPC Server的WebServer,当不开启rpc模式时,WebServer会为null
149+
* @return WebServer实例,如果没有开启rpc模式,则会返回null
150+
*/
147151
public WebServer getWebServer() {
148152
return webServer;
149153
}

0 commit comments

Comments
 (0)