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

2
src/engine/job/AbstractScheduleJob.java

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

2
src/engine/job/JobContainer.java

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

40
src/engine/job/JobThread.java

@ -0,0 +1,40 @@ @@ -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();
}
}

5
src/engine/job/JobWorker.java

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

2
src/engine/jobs/AbstractEffectJob.java

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

2
src/engine/jobs/ActivateBaneJob.java

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

2
src/engine/jobs/AttackJob.java

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

2
src/engine/jobs/BaneDefaultTimeJob.java

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

2
src/engine/jobs/BasicScheduledJob.java

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

2
src/engine/jobs/BonusCalcJob.java

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

2
src/engine/jobs/CSessionCleanupJob.java

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

2
src/engine/jobs/ChangeAltitudeJob.java

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

2
src/engine/jobs/ChantJob.java

@ -36,7 +36,7 @@ public class ChantJob extends AbstractEffectJob { @@ -36,7 +36,7 @@ public class ChantJob extends AbstractEffectJob {
}
@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)
return;
PlayerBonuses bonuses = null;

2
src/engine/jobs/CloseGateJob.java

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

2
src/engine/jobs/DamageOverTimeJob.java

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

2
src/engine/jobs/DatabaseUpdateJob.java

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

2
src/engine/jobs/DebugTimerJob.java

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

2
src/engine/jobs/DeferredPowerJob.java

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

2
src/engine/jobs/DisconnectJob.java

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

2
src/engine/jobs/DoorCloseJob.java

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

2
src/engine/jobs/EndFearJob.java

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

2
src/engine/jobs/FinishCooldownTimeJob.java

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

2
src/engine/jobs/FinishEffectTimeJob.java

@ -22,7 +22,7 @@ public class FinishEffectTimeJob extends AbstractEffectJob { @@ -22,7 +22,7 @@ public class FinishEffectTimeJob extends AbstractEffectJob {
}
@Override
protected void doJob() {
public void doJob() {
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 { @@ -26,7 +26,7 @@ public class FinishRecycleTimeJob extends AbstractScheduleJob {
}
@Override
protected void doJob() {
public void doJob() {
PowersManager.finishRecycleTime(this.msg, this.pc, false);
}

2
src/engine/jobs/FinishSpireEffectJob.java

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

2
src/engine/jobs/FinishSummonsJob.java

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

2
src/engine/jobs/LoadEffectsJob.java

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

2
src/engine/jobs/LogoutCharacterJob.java

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

2
src/engine/jobs/NoTimeJob.java

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

2
src/engine/jobs/PersistentAoeJob.java

@ -40,7 +40,7 @@ public class PersistentAoeJob extends AbstractEffectJob { @@ -40,7 +40,7 @@ public class PersistentAoeJob extends AbstractEffectJob {
}
@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)
return;

2
src/engine/jobs/RefreshGroupJob.java

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

2
src/engine/jobs/RemoveCorpseJob.java

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

2
src/engine/jobs/SiegeSpireWithdrawlJob.java

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

2
src/engine/jobs/StuckJob.java

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

2
src/engine/jobs/SummonSendJob.java

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

2
src/engine/jobs/TeleportJob.java

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

2
src/engine/jobs/TrackJob.java

@ -35,7 +35,7 @@ public class TrackJob extends AbstractEffectJob { @@ -35,7 +35,7 @@ public class TrackJob extends AbstractEffectJob {
}
@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))
return;

2
src/engine/jobs/TransferStatOTJob.java

@ -29,7 +29,7 @@ public class TransferStatOTJob extends AbstractEffectJob { @@ -29,7 +29,7 @@ public class TransferStatOTJob extends AbstractEffectJob {
}
@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)
return;
if (!this.target.isAlive()) {

2
src/engine/jobs/UpdateGroupJob.java

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

2
src/engine/jobs/UpgradeBuildingJob.java

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

2
src/engine/jobs/UpgradeNPCJob.java

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

2
src/engine/jobs/UseItemJob.java

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

2
src/engine/jobs/UseMobPowerJob.java

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

2
src/engine/jobs/UsePowerJob.java

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

4
src/engine/net/AbstractConnectionManager.java

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

2
src/engine/net/CheckNetMsgFactoryJob.java

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

2
src/engine/net/ConnectionMonitorJob.java

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

Loading…
Cancel
Save