MCPcopy Create free account
hub / github.com/e2wugui/zeze / mainRun

Method mainRun

ZezeJava/ZezeJava/src/main/java/Zeze/Services/Daemon.java:95–148  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

93 }
94
95 private static int mainRun() {
96 while (true) {
97 try {
98 // 轮询:等待Global配置以及等待子进程退出。
99 try {
100 var cmd = receiveCommand(udpSocket);
101 switch (cmd.command()) {
102 case Register.Command:
103 var reg = (Register)cmd;
104 var code = 0;
105 if (monitors.containsKey(reg.serverId))
106 code = 1;
107 else {
108 var monitor = new Monitor(reg);
109 monitors.put(reg.serverId, monitor);
110 monitor.start();
111 }
112 sendCommand(udpSocket, cmd.peer, new CommonResult(reg.reliableSerialNo, code));
113 logger.info("Register! Server={} code={}", reg.serverId, code);
114 break;
115
116 case GlobalOn.Command:
117 var on = (GlobalOn)cmd;
118 code = 0;
119 var monitor = monitors.get(on.serverId);
120 if (monitor != null) {
121 monitor.setConfig(on.globalIndex, on.globalConfig);
122 logger.info("GlobalOn! Server={} ServerDaemonTimeout={} ServerReleaseTimeout={}",
123 on.serverId, on.globalConfig.serverDaemonTimeout, on.globalConfig.serverReleaseTimeout);
124 } else {
125 logger.warn("GlobalOn! not found serverId={} ServerDaemonTimeout={} ServerReleaseTimeout={}",
126 on.serverId, on.globalConfig.serverDaemonTimeout, on.globalConfig.serverReleaseTimeout);
127 code = 1;
128 }
129 sendCommand(udpSocket, cmd.peer, new CommonResult(on.reliableSerialNo, code));
130 break;
131
132 case DeadlockReport.Command:
133 logger.warn("deadlock report");
134 destroySubprocess();
135 break;
136 }
137 } catch (SocketTimeoutException ex) {
138 // skip
139 }
140 if (subprocess.waitFor(0, TimeUnit.MILLISECONDS))
141 return subprocess.exitValue();
142 } catch (Throwable ex) { // print stacktrace.
143 logger.fatal("Daemon.mainRun", ex);
144 fatalExit();
145 return -1; // never run here
146 }
147 }
148 }
149
150 private static void fatalExit() {
151 subprocess.destroy();

Callers 1

mainMethod · 0.95

Calls 10

receiveCommandMethod · 0.95
sendCommandMethod · 0.95
destroySubprocessMethod · 0.95
fatalExitMethod · 0.95
containsKeyMethod · 0.65
putMethod · 0.65
startMethod · 0.65
getMethod · 0.65
commandMethod · 0.45
setConfigMethod · 0.45

Tested by

no test coverage detected