ThreadPool manager rework.

This commit is contained in:
MobiusDev
2017-08-23 05:23:31 +00:00
parent 374c53df4b
commit b77de360af
718 changed files with 3180 additions and 7193 deletions

View File

@@ -385,7 +385,7 @@ public class AdminEditChar implements IAdminCommandHandler
if ((race != player.getRace()) || (((race == Race.HUMAN) || (race == Race.ORC)) && (isMage != player.isMageClass())))
{
TransformData.getInstance().transformPlayer(105, player);
ThreadPoolManager.getInstance().scheduleGeneral(new Untransform(player), 200);
ThreadPoolManager.schedule(new Untransform(player), 200);
}
}
else
@@ -493,7 +493,7 @@ public class AdminEditChar implements IAdminCommandHandler
player.broadcastUserInfo();
// Transform-untransorm player quickly to force the client to reload the character textures
TransformData.getInstance().transformPlayer(105, player);
ThreadPoolManager.getInstance().scheduleGeneral(new Untransform(player), 200);
ThreadPoolManager.schedule(new Untransform(player), 200);
}
else if (command.startsWith("admin_setcolor"))

View File

@@ -109,7 +109,7 @@ public class AdminMonsterRace implements IAdminCommandHandler
activeChar.sendPacket(spk);
activeChar.broadcastPacket(spk);
ThreadPoolManager.getInstance().scheduleGeneral(new RunRace(codes, activeChar), 5000);
ThreadPoolManager.schedule(new RunRace(codes, activeChar), 5000);
}
}
@@ -139,7 +139,7 @@ public class AdminMonsterRace implements IAdminCommandHandler
final MonRaceInfo spk = new MonRaceInfo(codes[2][0], codes[2][1], MonsterRace.getInstance().getMonsters(), MonsterRace.getInstance().getSpeeds());
activeChar.sendPacket(spk);
activeChar.broadcastPacket(spk);
ThreadPoolManager.getInstance().scheduleGeneral(new RunEnd(activeChar), 30000);
ThreadPoolManager.schedule(new RunEnd(activeChar), 30000);
}
}

View File

@@ -553,7 +553,7 @@ public final class AdminPForge implements IAdminCommandHandler
p.setBuffers(bb, activeChar.getClient(), new NioNetStringBuffer(2000));
if (p.read())
{
ThreadPoolManager.getInstance().executePacket(p);
ThreadPoolManager.execute(p);
}
}
}

View File

@@ -20,15 +20,14 @@ import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.GameServer;
import com.l2jmobius.gameserver.GameTimeController;
import com.l2jmobius.gameserver.ThreadPoolManager;
import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.xml.impl.AdminData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
@@ -71,14 +70,6 @@ public class AdminServerInfo implements IAdminCommandHandler
html.replace("%usedMem%", (RunTime.maxMemory() / mb) - (((RunTime.maxMemory() - RunTime.totalMemory()) + RunTime.freeMemory()) / mb));
html.replace("%freeMem%", ((RunTime.maxMemory() - RunTime.totalMemory()) + RunTime.freeMemory()) / mb);
html.replace("%totalMem%", Runtime.getRuntime().maxMemory() / 1048576);
html.replace("%theardInfoGen%", buildTheardInfo("GENERAL"));
html.replace("%theardInfoEff%", buildTheardInfo("EFFECTS"));
html.replace("%theardInfoAi%", buildTheardInfo("AI"));
html.replace("%theardInfoEvent%", buildTheardInfo("EVENT"));
html.replace("%theardInfoPack%", buildTheardInfo("PACKETS"));
html.replace("%theardInfoIOPack%", buildTheardInfo("IOPACKETS"));
html.replace("%theardInfoGenTask%", buildTheardInfo("GENERAL_TASKS"));
html.replace("%theardInfoEvnTask%", buildTheardInfo("EVENT_TASKS"));
activeChar.sendPacket(html);
}
return true;
@@ -92,25 +83,7 @@ public class AdminServerInfo implements IAdminCommandHandler
time -= TimeUnit.DAYS.toMillis(days);
final long hours = TimeUnit.MILLISECONDS.toHours(time);
time -= TimeUnit.HOURS.toMillis(hours);
final long minutes = TimeUnit.MILLISECONDS.toMinutes(time);
return days + " Days, " + hours + " Hours, " + minutes + " Minutes";
}
private String buildTheardInfo(String category)
{
final StringBuilder tb = new StringBuilder();
tb.append("<table width=\"270\" border=\"0\" bgcolor=\"444444\">");
for (Entry<String, Object> info : ThreadPoolManager.getInstance().getStats(category).getSet().entrySet())
{
tb.append("<tr>");
tb.append("<td>" + info.getKey() + ":</td>");
tb.append("<td><font color=\"00FF00\">" + info.getValue() + "</font></td>");
tb.append("</tr>");
}
tb.append("</table>");
return tb.toString();
return days + " Days, " + hours + " Hours, " + TimeUnit.MILLISECONDS.toMinutes(time) + " Minutes";
}
private int getPlayersCount(String type)
@@ -119,7 +92,7 @@ public class AdminServerInfo implements IAdminCommandHandler
{
case "ALL":
{
return L2World.getInstance().getAllPlayersCount();
return L2World.getInstance().getPlayers().size();
}
case "OFF_TRADE":
{
@@ -138,7 +111,7 @@ public class AdminServerInfo implements IAdminCommandHandler
case "GM":
{
int onlineGMcount = 0;
for (L2PcInstance gm : L2World.getInstance().getAllGMs())
for (L2PcInstance gm : AdminData.getInstance().getAllGms(true))
{
if ((gm != null) && gm.isOnline() && (gm.getClient() != null) && !gm.getClient().isDetached())
{
@@ -153,7 +126,7 @@ public class AdminServerInfo implements IAdminCommandHandler
for (L2PcInstance onlinePlayer : L2World.getInstance().getPlayers())
{
if (((onlinePlayer != null) && (onlinePlayer.getClient() != null)) && !onlinePlayer.getClient().isDetached())
if ((onlinePlayer != null) && (onlinePlayer.getClient() != null) && !onlinePlayer.getClient().isDetached())
{
realPlayers.add(onlinePlayer.getIPAddress());
}

View File

@@ -46,7 +46,7 @@ public class AdminTest implements IAdminCommandHandler
{
if (command.equals("admin_stats"))
{
for (String line : ThreadPoolManager.getInstance().getStats())
for (String line : ThreadPoolManager.getStats())
{
activeChar.sendMessage(line);
}

View File

@@ -74,7 +74,7 @@ public final class ServitorShare extends AbstractEffect
final L2Character effected = info.getEffected().isPlayer() ? info.getEffected().getSummon() : info.getEffected().getActingPlayer();
if (effected != null)
{
ThreadPoolManager.getInstance().scheduleEffect(new ScheduledEffectExitTask(effected, info.getSkill().getId()), 100);
ThreadPoolManager.schedule(new ScheduledEffectExitTask(effected, info.getSkill().getId()), 100);
}
}
}

View File

@@ -168,7 +168,7 @@ public class JailHandler implements IPunishmentHandler
OlympiadManager.getInstance().removeDisconnectedCompetitor(player);
}
ThreadPoolManager.getInstance().scheduleGeneral(new TeleportTask(player, L2JailZone.getLocationIn()), 2000);
ThreadPoolManager.schedule(new TeleportTask(player, L2JailZone.getLocationIn()), 2000);
// Open a Html message to inform the player
final NpcHtmlMessage msg = new NpcHtmlMessage();
@@ -204,7 +204,7 @@ public class JailHandler implements IPunishmentHandler
*/
private static void removeFromPlayer(L2PcInstance player)
{
ThreadPoolManager.getInstance().scheduleGeneral(new TeleportTask(player, L2JailZone.getLocationOut()), 2000);
ThreadPoolManager.schedule(new TeleportTask(player, L2JailZone.getLocationOut()), 2000);
// Open a Html message to inform the player
final NpcHtmlMessage msg = new NpcHtmlMessage();

View File

@@ -109,54 +109,6 @@ public class DebugHandler implements ITelnetHandler
targetPlayer.sendPacket(sp);
_print.println("Packet sent to player " + charName);
}
else if (dbg.equals("PacketTP"))
{
final String str = ThreadPoolManager.getInstance().getPacketStats();
_print.println(str);
int i = 0;
File f = new File("./log/StackTrace-PacketTP-" + i + ".txt");
while (f.exists())
{
i++;
f = new File("./log/StackTrace-PacketTP-" + i + ".txt");
}
f.getParentFile().mkdirs();
fos = new FileOutputStream(f);
out = new OutputStreamWriter(fos, "UTF-8");
out.write(str);
}
else if (dbg.equals("IOPacketTP"))
{
final String str = ThreadPoolManager.getInstance().getIOPacketStats();
_print.println(str);
int i = 0;
File f = new File("./log/StackTrace-IOPacketTP-" + i + ".txt");
while (f.exists())
{
i++;
f = new File("./log/StackTrace-IOPacketTP-" + i + ".txt");
}
f.getParentFile().mkdirs();
fos = new FileOutputStream(f);
out = new OutputStreamWriter(fos, "UTF-8");
out.write(str);
}
else if (dbg.equals("GeneralTP"))
{
final String str = ThreadPoolManager.getInstance().getGeneralStats();
_print.println(str);
int i = 0;
File f = new File("./log/StackTrace-GeneralTP-" + i + ".txt");
while (f.exists())
{
i++;
f = new File("./log/StackTrace-GeneralTP-" + i + ".txt");
}
f.getParentFile().mkdirs();
fos = new FileOutputStream(f);
out = new OutputStreamWriter(fos, "UTF-8");
out.write(str);
}
else if (dbg.equals("full"))
{
final Calendar cal = Calendar.getInstance();
@@ -248,7 +200,7 @@ public class DebugHandler implements ITelnetHandler
}
sb.append("\n\n## Thread Pool Manager Statistics ##\n");
for (String line : ThreadPoolManager.getInstance().getStats())
for (String line : ThreadPoolManager.getStats())
{
sb.append(line);
sb.append('\n');

View File

@@ -38,7 +38,7 @@ public class ThreadHandler implements ITelnetHandler
{
if (command.equals("performance"))
{
for (String line : ThreadPoolManager.getInstance().getStats())
for (String line : ThreadPoolManager.getStats())
{
_print.println(line);
}
@@ -46,10 +46,10 @@ public class ThreadHandler implements ITelnetHandler
}
else if (command.equals("purge"))
{
ThreadPoolManager.getInstance().purge();
ThreadPoolManager.purge();
_print.println("STATUS OF THREAD POOLS AFTER PURGE COMMAND:");
_print.println("");
for (String line : ThreadPoolManager.getInstance().getStats())
for (String line : ThreadPoolManager.getStats())
{
_print.println(line);
}

View File

@@ -111,7 +111,7 @@ public class Unstuck implements IUserCommandHandler
// End SoE Animation section
// continue execution later
activeChar.setSkillCast(ThreadPoolManager.getInstance().scheduleGeneral(new EscapeFinalizer(activeChar), unstuckTimer));
activeChar.setSkillCast(ThreadPoolManager.schedule(new EscapeFinalizer(activeChar), unstuckTimer));
return true;
}

View File

@@ -472,7 +472,7 @@ public class Wedding implements IVoicedCommandHandler
final EscapeFinalizer ef = new EscapeFinalizer(activeChar, partner.getLocation(), partner.isIn7sDungeon());
// continue execution later
activeChar.setSkillCast(ThreadPoolManager.getInstance().scheduleGeneral(ef, teleportTimer));
activeChar.setSkillCast(ThreadPoolManager.schedule(ef, teleportTimer));
activeChar.forceIsCasting(GameTimeController.getInstance().getGameTicks() + (teleportTimer / GameTimeController.MILLIS_IN_TICK));
return true;