Atomic instead of volatile to match counter

This commit is contained in:
2024-05-11 09:15:11 -04:00
parent f7ab38e9a8
commit ba94fabfb8
4 changed files with 18 additions and 17 deletions
+6 -6
View File
@@ -65,7 +65,7 @@ public enum ForgeManager implements Runnable {
// Early exit for completed workOrders loaded from disk
// or vendors who were re-deeded with items cooking.
if (workOrder.vendor == null && workOrder.runCompleted)
if (workOrder.vendor == null && workOrder.runCompleted.get())
continue;
// This workOrder has completed production.
@@ -82,7 +82,7 @@ public enum ForgeManager implements Runnable {
DispatchMessage.dispatchMsgToInterestArea(workOrder.vendor, outMsg, mbEnums.DispatchChannel.SECONDARY, 700, false, false);
}
workOrder.runCompleted = true;
workOrder.runCompleted.set(true);
// Update workOrder on disk
@@ -150,9 +150,9 @@ public enum ForgeManager implements Runnable {
workOrder.workOrderID = workOrderCounter.incrementAndGet();
workOrder.rollingDuration = ForgeManager.calcRollingDuration(workOrder);
workOrder.completionTime = System.currentTimeMillis() + workOrder.rollingDuration;
workOrder.slots_used = calcAvailableSlots(workOrder);
workOrder.slots_used.set(calcAvailableSlots(workOrder));
if (workOrder.slots_used == 0)
if (workOrder.slots_used.get() == 0)
return 58;
workOrder.total_produced = 0;
@@ -164,7 +164,7 @@ public enum ForgeManager implements Runnable {
// Set total cost for production run
workOrder.total_to_produce *= workOrder.slots_used;
workOrder.total_to_produce *= workOrder.slots_used.get();
workOrder.production_cost = calcProductionCost(workOrder);
workOrder.production_cost.forEach((key, value) -> workOrder.production_cost_total.put(key, value * workOrder.total_to_produce));
@@ -366,7 +366,7 @@ public enum ForgeManager implements Runnable {
workOrder.completionTime = System.currentTimeMillis() + workOrder.rollingDuration;
for (int i = 0; i < workOrder.slots_used; ++i) {
for (int i = 0; i < workOrder.slots_used.get(); ++i) {
Item forged_item = forgeItem(workOrder);