Removed some unnecessary synchronizations from quest timers.

This commit is contained in:
MobiusDevelopment
2020-03-24 11:15:43 +00:00
parent 148a872859
commit 374eab6fdd
18 changed files with 647 additions and 807 deletions

View File

@ -387,6 +387,7 @@ public class Quest extends ManagedScript
return timer;
}
}
return null;
}
@ -401,23 +402,21 @@ public class Quest extends ManagedScript
return;
}
synchronized (_questTimers)
final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{
final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
}
/**
@ -433,23 +432,19 @@ public class Quest extends ManagedScript
return;
}
synchronized (_questTimers)
final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{
final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
return;
}
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
return;
}
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
}
}
@ -465,13 +460,10 @@ public class Quest extends ManagedScript
return;
}
synchronized (_questTimers)
final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{
final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{
timers.remove(timer);
}
timers.remove(timer);
}
}
@ -1668,20 +1660,21 @@ public class Quest extends ManagedScript
public boolean unload()
{
saveGlobalData();
// Cancel all pending timers before reloading.
// If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers)
for (List<QuestTimer> timers : _questTimers.values())
{
for (List<QuestTimer> timers : _questTimers.values())
for (QuestTimer timer : timers)
{
for (QuestTimer timer : timers)
{
timer.cancel();
}
timers.clear();
timer.cancel();
}
_questTimers.clear();
timers.clear();
}
_questTimers.clear();
return QuestManager.getInstance().removeQuest(this);
}