Skip to content

Commit f6e9e86

Browse files
committed
Revert "proper finished queue syncing"
This reverts commit 3012b63.
1 parent 16f788d commit f6e9e86

1 file changed

Lines changed: 26 additions & 57 deletions

File tree

src/main/java/com/falsepattern/falsetweaks/modules/threadedupdates/ThreadedChunkUpdateHelper.java

Lines changed: 26 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
import java.util.concurrent.LinkedBlockingDeque;
6767
import java.util.concurrent.atomic.AtomicBoolean;
6868
import java.util.concurrent.atomic.AtomicReference;
69-
import java.util.concurrent.locks.ReentrantLock;
7069
import java.util.function.Supplier;
7170

7271
import static com.falsepattern.falsetweaks.modules.occlusion.OcclusionRenderer.*;
@@ -105,19 +104,12 @@ public void prepare(List<WorldRenderer> worldRenderersToUpdateList, int updateLi
105104
worldRenderersToUpdateListInternal.flip();
106105
back.clear();
107106
val size = front.size();
108-
while (!finishedQueueLock.tryLock()) {
109-
Thread.yield();
110-
}
111-
try {
112-
for (int i = 0; i < size; i++) {
113-
val wr = front.get(i);
114-
val task = ((IRendererUpdateResultHolder) wr).ft$getRendererUpdateTask();
115-
if (!task.inFinishedQueue) {
116-
back.add(wr);
117-
}
107+
for (int i = 0; i < size; i++) {
108+
val wr = front.get(i);
109+
val task = ((IRendererUpdateResultHolder) wr).ft$getRendererUpdateTask();
110+
if (!task.inFinishedQueue) {
111+
back.add(wr);
118112
}
119-
} finally {
120-
finishedQueueLock.unlock();
121113
}
122114
front.clear();
123115
back.addAll(worldRenderersToUpdateList);
@@ -129,25 +121,18 @@ public void prepare(List<WorldRenderer> worldRenderersToUpdateList, int updateLi
129121
public boolean hasNext() {
130122
WorldRenderer wr;
131123

132-
while (!finishedQueueLock.tryLock()) {
133-
Thread.yield();
134-
}
135-
try {
136-
while ((wr = finishedTasks.poll()) != null) {
137-
UpdateTask task = ((IRendererUpdateResultHolder) wr).ft$getRendererUpdateTask();
138-
task.inFinishedQueue = false;
139-
if (task.cancelled || (!wr.needsUpdate && !((WorldRendererOcclusion) wr).ft$needsSort())) {
140-
if (AGGRESSIVE_NEODYMIUM_THREADING) {
141-
NeodymiumCompat.safeDiscardTask(task);
142-
}
143-
task.clear();
144-
} else {
145-
nextRenderer = wr;
146-
return true;
124+
while ((wr = finishedTasks.poll()) != null) {
125+
UpdateTask task = ((IRendererUpdateResultHolder) wr).ft$getRendererUpdateTask();
126+
task.inFinishedQueue = false;
127+
if (task.cancelled || (!wr.needsUpdate && !((WorldRendererOcclusion) wr).ft$needsSort())) {
128+
if (AGGRESSIVE_NEODYMIUM_THREADING) {
129+
NeodymiumCompat.safeDiscardTask(task);
147130
}
131+
task.clear();
132+
} else {
133+
nextRenderer = wr;
134+
return true;
148135
}
149-
} finally {
150-
finishedQueueLock.unlock();
151136
}
152137
return false;
153138
}
@@ -397,24 +382,17 @@ private void updateWorkQueue(List<WorldRenderer> toUpdateList, int updateLimit)
397382
}
398383

399384
private void removeCancelledResults() {
400-
while (!finishedQueueLock.tryLock()) {
401-
Thread.yield();
402-
}
403-
try {
404-
for (Iterator<WorldRenderer> it = finishedTasks.iterator(); it.hasNext(); ) {
405-
WorldRenderer wr = it.next();
406-
UpdateTask task = ((IRendererUpdateResultHolder) wr).ft$getRendererUpdateTask();
407-
if (task.cancelled) {
408-
// Discard results and allow re-schedule on worker thread.
409-
if (AGGRESSIVE_NEODYMIUM_THREADING) {
410-
NeodymiumCompat.safeDiscardTask(task);
411-
}
412-
task.clear();
413-
it.remove();
385+
for (Iterator<WorldRenderer> it = finishedTasks.iterator(); it.hasNext(); ) {
386+
WorldRenderer wr = it.next();
387+
UpdateTask task = ((IRendererUpdateResultHolder) wr).ft$getRendererUpdateTask();
388+
if (task.cancelled) {
389+
// Discard results and allow re-schedule on worker thread.
390+
if (AGGRESSIVE_NEODYMIUM_THREADING) {
391+
NeodymiumCompat.safeDiscardTask(task);
414392
}
393+
task.clear();
394+
it.remove();
415395
}
416-
} finally {
417-
finishedQueueLock.unlock();
418396
}
419397
}
420398

@@ -752,22 +730,13 @@ private void runTask(WorldRenderer wr, Profiler profiler) {
752730
task.clear();
753731
}
754732
((ICapturableTessellator) threadTessellator.get()).discard();
755-
while (!finishedQueueLock.tryLock()) {
756-
Thread.yield();
757-
}
758-
try {
759-
finishedTasks.add(wr);
760-
task.inFinishedQueue = true;
761-
} finally {
762-
finishedQueueLock.unlock();
763-
}
733+
finishedTasks.add(wr);
734+
task.inFinishedQueue = true;
764735
} finally {
765736
profiler.endSection();
766737
}
767738
}
768739

769-
private final ReentrantLock finishedQueueLock = new ReentrantLock();
770-
771740
private class WorkerThread extends FastThreadLocal.TurboThread {
772741
private final AtomicBoolean myRun;
773742
private final CircularTaskQueue taskQueue;

0 commit comments

Comments
 (0)