From 85ce43be12ef37ac69809796dfaaf4d7bacd14b2 Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Sun, 26 Oct 2025 22:32:23 +1000 Subject: [PATCH] jank --- .../thread/MultiThreadPrioritySemaphore.java | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/main/java/me/cortex/voxy/common/thread/MultiThreadPrioritySemaphore.java b/src/main/java/me/cortex/voxy/common/thread/MultiThreadPrioritySemaphore.java index 7530b3d7..a4719609 100644 --- a/src/main/java/me/cortex/voxy/common/thread/MultiThreadPrioritySemaphore.java +++ b/src/main/java/me/cortex/voxy/common/thread/MultiThreadPrioritySemaphore.java @@ -24,14 +24,41 @@ public class MultiThreadPrioritySemaphore { this.blockSemaphore.release(permits); } - public void acquire() {//Block until a permit for this block is availbe, other jobs maybe executed while we wait + public void acquire() { + this.acquire(true); + } + public void acquire(boolean runJob) {//Block until a permit for this block is availbe, other jobs maybe executed while we wait + /* while (true) { this.blockSemaphore.acquireUninterruptibly();//Block on all if (this.localSemaphore.tryAcquire()) {//We prioritize locals first return; } - //It wasnt a local job so run - this.man.tryRun(this); + if (runJob) { + //It wasnt a local job so run + this.man.tryRun(this); + } else { + this.blockSemaphore.release(1); + Thread.onSpinWait(); + Thread.yield(); + } + }*/ + + //Absolutly no idea if this shitty thing functions correctly... at all, it very much probably doesnt + while (true) { + if (runJob) { + this.blockSemaphore.acquireUninterruptibly();//Block on all + if (this.localSemaphore.tryAcquire()) {//We prioritize locals first + return; + } + this.man.tryRun(this); + } else { + this.localSemaphore.acquireUninterruptibly(); + if (!this.blockSemaphore.tryAcquire()) { + //This is technicanlly/actually a failure state cause blockSemaphore could have more + } + break; + } } }