Browse Source

job worker thread

lakebane-ai
FatBoy-DOTC 2 weeks ago
parent
commit
17e54ea4aa
  1. 2
      src/engine/job/AbstractJob.java
  2. 2
      src/engine/job/AbstractScheduleJob.java
  3. 2
      src/engine/job/JobContainer.java
  4. 40
      src/engine/job/JobThread.java
  5. 7
      src/engine/job/JobWorker.java
  6. 2
      src/engine/jobs/AbstractEffectJob.java
  7. 2
      src/engine/jobs/ActivateBaneJob.java
  8. 2
      src/engine/jobs/AttackJob.java
  9. 2
      src/engine/jobs/BaneDefaultTimeJob.java
  10. 2
      src/engine/jobs/BasicScheduledJob.java
  11. 2
      src/engine/jobs/BonusCalcJob.java
  12. 2
      src/engine/jobs/CSessionCleanupJob.java
  13. 2
      src/engine/jobs/ChangeAltitudeJob.java
  14. 2
      src/engine/jobs/ChantJob.java
  15. 2
      src/engine/jobs/CloseGateJob.java
  16. 2
      src/engine/jobs/DamageOverTimeJob.java
  17. 2
      src/engine/jobs/DatabaseUpdateJob.java
  18. 2
      src/engine/jobs/DebugTimerJob.java
  19. 2
      src/engine/jobs/DeferredPowerJob.java
  20. 2
      src/engine/jobs/DisconnectJob.java
  21. 2
      src/engine/jobs/DoorCloseJob.java
  22. 2
      src/engine/jobs/EndFearJob.java
  23. 2
      src/engine/jobs/FinishCooldownTimeJob.java
  24. 2
      src/engine/jobs/FinishEffectTimeJob.java
  25. 2
      src/engine/jobs/FinishRecycleTimeJob.java
  26. 2
      src/engine/jobs/FinishSpireEffectJob.java
  27. 2
      src/engine/jobs/FinishSummonsJob.java
  28. 2
      src/engine/jobs/LoadEffectsJob.java
  29. 2
      src/engine/jobs/LogoutCharacterJob.java
  30. 2
      src/engine/jobs/NoTimeJob.java
  31. 2
      src/engine/jobs/PersistentAoeJob.java
  32. 2
      src/engine/jobs/RefreshGroupJob.java
  33. 2
      src/engine/jobs/RemoveCorpseJob.java
  34. 2
      src/engine/jobs/SiegeSpireWithdrawlJob.java
  35. 2
      src/engine/jobs/StuckJob.java
  36. 2
      src/engine/jobs/SummonSendJob.java
  37. 2
      src/engine/jobs/TeleportJob.java
  38. 2
      src/engine/jobs/TrackJob.java
  39. 2
      src/engine/jobs/TransferStatOTJob.java
  40. 2
      src/engine/jobs/UpdateGroupJob.java
  41. 2
      src/engine/jobs/UpgradeBuildingJob.java
  42. 2
      src/engine/jobs/UpgradeNPCJob.java
  43. 2
      src/engine/jobs/UseItemJob.java
  44. 2
      src/engine/jobs/UseMobPowerJob.java
  45. 2
      src/engine/jobs/UsePowerJob.java
  46. 4
      src/engine/net/AbstractConnectionManager.java
  47. 2
      src/engine/net/CheckNetMsgFactoryJob.java
  48. 2
      src/engine/net/ConnectionMonitorJob.java

2
src/engine/job/AbstractJob.java

@ -68,7 +68,7 @@ public abstract class AbstractJob implements Runnable {
this.markStopRunTime(); this.markStopRunTime();
} }
protected abstract void doJob(); public abstract void doJob();
public void executeJob(String threadName) { public void executeJob(String threadName) {
this.workerID.set(threadName); this.workerID.set(threadName);

2
src/engine/job/AbstractScheduleJob.java

@ -17,7 +17,7 @@ public abstract class AbstractScheduleJob extends AbstractJob {
} }
@Override @Override
protected abstract void doJob(); public abstract void doJob();
public void cancelJob() { public void cancelJob() {
JobScheduler.getInstance().cancelScheduledJob(this); JobScheduler.getInstance().cancelScheduledJob(this);

2
src/engine/job/JobContainer.java

@ -16,7 +16,7 @@ public class JobContainer implements Comparable<JobContainer> {
final long timeOfExecution; final long timeOfExecution;
final boolean noTimer; final boolean noTimer;
JobContainer(AbstractJob job, long timeOfExecution) { public JobContainer(AbstractJob job, long timeOfExecution) {
if (job == null) { if (job == null) {
throw new IllegalArgumentException("No 'null' jobs allowed."); throw new IllegalArgumentException("No 'null' jobs allowed.");
} }

40
src/engine/job/JobThread.java

@ -0,0 +1,40 @@
package engine.job;
import org.pmw.tinylog.Logger;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;
public class JobThread implements Runnable {
private final AbstractJob currentJob;
private final ReentrantLock lock = new ReentrantLock();
public JobThread(AbstractJob job){
this.currentJob = job;
}
@Override
public void run() {
try {
if (this.currentJob != null) {
if (lock.tryLock(5, TimeUnit.SECONDS)) { // Timeout to prevent deadlock
try {
this.currentJob.doJob();
} finally {
lock.unlock();
}
} else {
Logger.warn("JobThread could not acquire lock in time, skipping job.");
}
}
} catch (Exception e) {
Logger.error(e);
}
}
public static void startJobThread(AbstractJob job){
JobThread jobThread = new JobThread(job);
Thread thread = new Thread(jobThread);
thread.start();
}
}

7
src/engine/job/JobWorker.java

@ -58,8 +58,11 @@ public class JobWorker extends ControlledRunnable {
} else { } else {
// execute the new job.. // execute the new job..
this.currentJob.executeJob(this.getThreadName()); //this.currentJob.executeJob(this.getThreadName());
this.currentJob = null; if(this.currentJob != null) {
JobThread.startJobThread(this.currentJob);
this.currentJob = null;
}
} }
Thread.yield(); Thread.yield();
} }

2
src/engine/jobs/AbstractEffectJob.java

@ -45,7 +45,7 @@ public abstract class AbstractEffectJob extends AbstractScheduleJob {
} }
@Override @Override
protected abstract void doJob(); public abstract void doJob();
@Override @Override
protected abstract void _cancelJob(); protected abstract void _cancelJob();

2
src/engine/jobs/ActivateBaneJob.java

@ -29,7 +29,7 @@ public class ActivateBaneJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
City city; City city;

2
src/engine/jobs/AttackJob.java

@ -27,7 +27,7 @@ public class AttackJob extends AbstractJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
CombatManager.doCombat(this.source, slot); CombatManager.doCombat(this.source, slot);
} }

2
src/engine/jobs/BaneDefaultTimeJob.java

@ -24,7 +24,7 @@ public class BaneDefaultTimeJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
//bane already set. //bane already set.
if (this.bane.getLiveDate() != null) { if (this.bane.getLiveDate() != null) {

2
src/engine/jobs/BasicScheduledJob.java

@ -97,7 +97,7 @@ public class BasicScheduledJob extends AbstractJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (execution == null) { if (execution == null) {
Logger.error("BasicScheduledJob executed with nothing to execute."); Logger.error("BasicScheduledJob executed with nothing to execute.");
return; return;

2
src/engine/jobs/BonusCalcJob.java

@ -22,7 +22,7 @@ public class BonusCalcJob extends AbstractJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.ac != null) { if (this.ac != null) {
this.ac.applyBonuses(); this.ac.applyBonuses();

2
src/engine/jobs/CSessionCleanupJob.java

@ -22,7 +22,7 @@ public class CSessionCleanupJob extends AbstractJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
SessionManager.cSessionCleanup(secKey); SessionManager.cSessionCleanup(secKey);
} }
} }

2
src/engine/jobs/ChangeAltitudeJob.java

@ -27,7 +27,7 @@ public class ChangeAltitudeJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.ac != null) if (this.ac != null)
MovementManager.finishChangeAltitude(ac, targetAlt); MovementManager.finishChangeAltitude(ac, targetAlt);
} }

2
src/engine/jobs/ChantJob.java

@ -36,7 +36,7 @@ public class ChantJob extends AbstractEffectJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.aej == null || this.source == null || this.target == null || this.action == null || this.power == null || this.source == null || this.eb == null) if (this.aej == null || this.source == null || this.target == null || this.action == null || this.power == null || this.source == null || this.eb == null)
return; return;
PlayerBonuses bonuses = null; PlayerBonuses bonuses = null;

2
src/engine/jobs/CloseGateJob.java

@ -29,7 +29,7 @@ public class CloseGateJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (building == null) { if (building == null) {
Logger.error("Rungate building was null"); Logger.error("Rungate building was null");

2
src/engine/jobs/DamageOverTimeJob.java

@ -37,7 +37,7 @@ public class DamageOverTimeJob extends AbstractEffectJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.target.getObjectType().equals(GameObjectType.Building) if (this.target.getObjectType().equals(GameObjectType.Building)
&& ((Building) this.target).isVulnerable() == false) { && ((Building) this.target).isVulnerable() == false) {
_cancelJob(); _cancelJob();

2
src/engine/jobs/DatabaseUpdateJob.java

@ -28,7 +28,7 @@ public class DatabaseUpdateJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.ago == null) if (this.ago == null)
return; return;
ago.removeDatabaseJob(this.type, false); ago.removeDatabaseJob(this.type, false);

2
src/engine/jobs/DebugTimerJob.java

@ -29,7 +29,7 @@ public class DebugTimerJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.pc == null) { if (this.pc == null) {
return; return;
} }

2
src/engine/jobs/DeferredPowerJob.java

@ -37,7 +37,7 @@ public class DeferredPowerJob extends AbstractEffectJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
//Power ended with no attack, cancel weapon power boost //Power ended with no attack, cancel weapon power boost
if (this.source != null && this.source instanceof PlayerCharacter) { if (this.source != null && this.source instanceof PlayerCharacter) {
((PlayerCharacter) this.source).setWeaponPower(null); ((PlayerCharacter) this.source).setWeaponPower(null);

2
src/engine/jobs/DisconnectJob.java

@ -22,7 +22,7 @@ public class DisconnectJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.origin != null) { if (this.origin != null) {
this.origin.disconnect(); this.origin.disconnect();
} }

2
src/engine/jobs/DoorCloseJob.java

@ -28,7 +28,7 @@ public class DoorCloseJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
int doorNumber; int doorNumber;

2
src/engine/jobs/EndFearJob.java

@ -22,7 +22,7 @@ public class EndFearJob extends AbstractEffectJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
//cancel fear for mob. //cancel fear for mob.

2
src/engine/jobs/FinishCooldownTimeJob.java

@ -26,7 +26,7 @@ public class FinishCooldownTimeJob extends AbstractJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
PowersManager.finishCooldownTime(this.msg, this.pc); PowersManager.finishCooldownTime(this.msg, this.pc);
} }
} }

2
src/engine/jobs/FinishEffectTimeJob.java

@ -22,7 +22,7 @@ public class FinishEffectTimeJob extends AbstractEffectJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
PowersManager.finishEffectTime(this.source, this.target, this.action, this.trains); PowersManager.finishEffectTime(this.source, this.target, this.action, this.trains);
} }

2
src/engine/jobs/FinishRecycleTimeJob.java

@ -26,7 +26,7 @@ public class FinishRecycleTimeJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
PowersManager.finishRecycleTime(this.msg, this.pc, false); PowersManager.finishRecycleTime(this.msg, this.pc, false);
} }

2
src/engine/jobs/FinishSpireEffectJob.java

@ -20,7 +20,7 @@ public class FinishSpireEffectJob extends AbstractEffectJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
PlayerCharacter pc = (PlayerCharacter) target; PlayerCharacter pc = (PlayerCharacter) target;

2
src/engine/jobs/FinishSummonsJob.java

@ -31,7 +31,7 @@ public class FinishSummonsJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.target == null) if (this.target == null)
return; return;

2
src/engine/jobs/LoadEffectsJob.java

@ -28,7 +28,7 @@ public class LoadEffectsJob extends AbstractJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.originToSend == null) { if (this.originToSend == null) {
return; return;
} }

2
src/engine/jobs/LogoutCharacterJob.java

@ -25,7 +25,7 @@ public class LogoutCharacterJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
server.logoutCharacter(this.pc); server.logoutCharacter(this.pc);
} }

2
src/engine/jobs/NoTimeJob.java

@ -19,7 +19,7 @@ public class NoTimeJob extends AbstractEffectJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
} }
@Override @Override

2
src/engine/jobs/PersistentAoeJob.java

@ -40,7 +40,7 @@ public class PersistentAoeJob extends AbstractEffectJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.aej == null || this.source == null || this.action == null || this.power == null || this.source == null || this.eb == null) if (this.aej == null || this.source == null || this.action == null || this.power == null || this.source == null || this.eb == null)
return; return;

2
src/engine/jobs/RefreshGroupJob.java

@ -45,7 +45,7 @@ public class RefreshGroupJob extends AbstractJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.pc == null || this.origin == null || grp == null) { if (this.pc == null || this.origin == null || grp == null) {
return; return;

2
src/engine/jobs/RemoveCorpseJob.java

@ -22,7 +22,7 @@ public class RemoveCorpseJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.corpse != null) if (this.corpse != null)
Corpse.removeCorpse(corpse, true); Corpse.removeCorpse(corpse, true);

2
src/engine/jobs/SiegeSpireWithdrawlJob.java

@ -25,7 +25,7 @@ public class SiegeSpireWithdrawlJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (spire == null) if (spire == null)
return; return;

2
src/engine/jobs/StuckJob.java

@ -30,7 +30,7 @@ public class StuckJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
Vector3fImmutable stuckLoc; Vector3fImmutable stuckLoc;
Building building = null; Building building = null;

2
src/engine/jobs/SummonSendJob.java

@ -27,7 +27,7 @@ public class SummonSendJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.source == null) if (this.source == null)
return; return;

2
src/engine/jobs/TeleportJob.java

@ -39,7 +39,7 @@ public class TeleportJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.pc == null || this.npc == null || this.origin == null) if (this.pc == null || this.npc == null || this.origin == null)
return; return;

2
src/engine/jobs/TrackJob.java

@ -35,7 +35,7 @@ public class TrackJob extends AbstractEffectJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.tpa == null || this.target == null || this.action == null || this.source == null || this.eb == null || !(this.source instanceof PlayerCharacter)) if (this.tpa == null || this.target == null || this.action == null || this.source == null || this.eb == null || !(this.source instanceof PlayerCharacter))
return; return;

2
src/engine/jobs/TransferStatOTJob.java

@ -29,7 +29,7 @@ public class TransferStatOTJob extends AbstractEffectJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.dot == null || this.target == null || this.action == null || this.source == null || this.eb == null || this.action == null || this.power == null) if (this.dot == null || this.target == null || this.action == null || this.source == null || this.eb == null || this.action == null || this.power == null)
return; return;
if (!this.target.isAlive()) { if (!this.target.isAlive()) {

2
src/engine/jobs/UpdateGroupJob.java

@ -26,7 +26,7 @@ public class UpdateGroupJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.group == null) if (this.group == null)
return; return;

2
src/engine/jobs/UpgradeBuildingJob.java

@ -22,7 +22,7 @@ public class UpgradeBuildingJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
// Must have a building to rank! // Must have a building to rank!

2
src/engine/jobs/UpgradeNPCJob.java

@ -27,7 +27,7 @@ public class UpgradeNPCJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
int newRank; int newRank;

2
src/engine/jobs/UseItemJob.java

@ -34,7 +34,7 @@ public class UseItemJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
PowersManager.finishApplyPower(ac, target, Vector3fImmutable.ZERO, pb, trains, liveCounter); PowersManager.finishApplyPower(ac, target, Vector3fImmutable.ZERO, pb, trains, liveCounter);
} }

2
src/engine/jobs/UseMobPowerJob.java

@ -35,7 +35,7 @@ public class UseMobPowerJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
PowersManager.finishUseMobPower(this.msg, this.caster, casterLiveCounter, targetLiveCounter); PowersManager.finishUseMobPower(this.msg, this.caster, casterLiveCounter, targetLiveCounter);
} }

2
src/engine/jobs/UsePowerJob.java

@ -35,7 +35,7 @@ public class UsePowerJob extends AbstractScheduleJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
PowersManager.finishUsePower(this.msg, this.pc, casterLiveCounter, targetLiveCounter); PowersManager.finishUsePower(this.msg, this.pc, casterLiveCounter, targetLiveCounter);
} }

4
src/engine/net/AbstractConnectionManager.java

@ -665,7 +665,7 @@ public abstract class AbstractConnectionManager extends ControlledRunnable {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (runStatus) { if (runStatus) {
this.ac.connMan.receive(sk); this.ac.connMan.receive(sk);
this.ac.execTask.compareAndSet(true, false); this.ac.execTask.compareAndSet(true, false);
@ -694,7 +694,7 @@ public abstract class AbstractConnectionManager extends ControlledRunnable {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (runStatus) { if (runStatus) {
this.ac.connMan.sendFinish(sk); this.ac.connMan.sendFinish(sk);
this.ac.execTask.compareAndSet(true, false); this.ac.execTask.compareAndSet(true, false);

2
src/engine/net/CheckNetMsgFactoryJob.java

@ -23,7 +23,7 @@ public class CheckNetMsgFactoryJob extends AbstractJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
NetMsgFactory factory = conn.getFactory(); NetMsgFactory factory = conn.getFactory();
// Make any/all msg possible // Make any/all msg possible

2
src/engine/net/ConnectionMonitorJob.java

@ -26,7 +26,7 @@ public class ConnectionMonitorJob extends AbstractJob {
} }
@Override @Override
protected void doJob() { public void doJob() {
if (this.cnt >= 5) { if (this.cnt >= 5) {
this.connMan.auditSocketChannelToConnectionMap(); this.connMan.auditSocketChannelToConnectionMap();

Loading…
Cancel
Save