diff --git a/core/src/main/java/com/questdb/mp/Worker.java b/core/src/main/java/com/questdb/mp/Worker.java index 11ef0c873525adb9345b88312b18769005857941..5a629070aa2f6793778354125383cc64200984e9 100644 --- a/core/src/main/java/com/questdb/mp/Worker.java +++ b/core/src/main/java/com/questdb/mp/Worker.java @@ -24,7 +24,6 @@ package com.questdb.mp; import com.questdb.log.Log; -import com.questdb.log.LogFactory; import com.questdb.std.ObjHashSet; import com.questdb.std.Os; import com.questdb.std.Unsafe; @@ -34,8 +33,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.LockSupport; public class Worker extends Thread { - private static final Log LOG = LogFactory.getLog(Worker.class); - private final static long RUNNING_OFFSET = Unsafe.getFieldOffset(Worker.class, "running"); private static final long YIELD_THRESHOLD = 100000L; private static final long SLEEP_THRESHOLD = 10000000L; @@ -43,15 +40,17 @@ public class Worker extends Thread { private final ObjHashSet jobs; private final CountDownLatch haltLatch; private final int affinity; + private final Log log; @SuppressWarnings("FieldCanBeLocal") private volatile int running = 0; private volatile int fence; public Worker(ObjHashSet jobs, CountDownLatch haltLatch) { - this(jobs, haltLatch, -1); + this(jobs, haltLatch, -1, null); } - public Worker(ObjHashSet jobs, CountDownLatch haltLatch, int affinity) { + public Worker(ObjHashSet jobs, CountDownLatch haltLatch, int affinity, Log log) { + this.log = log; this.jobs = jobs; this.haltLatch = haltLatch; this.setName("questdb-worker-" + COUNTER.incrementAndGet()); @@ -68,12 +67,18 @@ public class Worker extends Thread { setupJobs(); if (affinity > -1) { if (Os.setCurrentThreadAffinity(this.affinity) == 0) { - LOG.info().$("affinity set [cpu=").$(affinity).$(", name=").$(getName()).$(']').$(); + if (log != null) { + log.info().$("affinity set [cpu=").$(affinity).$(", name=").$(getName()).$(']').$(); + } } else { - LOG.error().$("could not set affinity [cpu=").$(affinity).$(", name=").$(getName()).$(']').$(); + if (log != null) { + log.error().$("could not set affinity [cpu=").$(affinity).$(", name=").$(getName()).$(']').$(); + } } } else { - LOG.info().$("os scheduled [name=").$(getName()).$(']').$(); + if (log != null) { + log.info().$("os scheduled [name=").$(getName()).$(']').$(); + } } int n = jobs.size(); long uselessCounter = 0; diff --git a/core/src/test/java/com/questdb/log/LogFactoryTest.java b/core/src/test/java/com/questdb/log/LogFactoryTest.java index 601c43f2c6b2aec64a1c1cb0a27468e95159b502..cea0ded33e50118dc0a67d831a1833fc406fb090 100644 --- a/core/src/test/java/com/questdb/log/LogFactoryTest.java +++ b/core/src/test/java/com/questdb/log/LogFactoryTest.java @@ -287,7 +287,7 @@ public class LogFactoryTest { } // logger is async, we need to let it finish writing - Thread.sleep(2000); + Thread.sleep(4000); } finally { factory.haltThread(); @@ -295,8 +295,6 @@ public class LogFactoryTest { } assertFileLength(expectedLogFile); assertFileLength(expectedLogFile + ".1"); - assertFileLength(expectedLogFile + ".2"); - assertFileLength(expectedLogFile + ".3"); } @Test