diff --git a/node/src/main/kotlin/net/corda/node/utilities/NamedThreadFactory.kt b/node/src/main/kotlin/net/corda/node/utilities/NamedThreadFactory.kt new file mode 100644 index 0000000000..9b4044686c --- /dev/null +++ b/node/src/main/kotlin/net/corda/node/utilities/NamedThreadFactory.kt @@ -0,0 +1,19 @@ +package net.corda.node.utilities + +import java.util.concurrent.ExecutorService +import java.util.concurrent.Executors +import java.util.concurrent.ThreadFactory +import java.util.concurrent.atomic.AtomicInteger + +class NamedThreadFactory(private val name:String, private val underlyingFactory: ThreadFactory) : ThreadFactory{ + val threadNumber = AtomicInteger(1) + override fun newThread(r: Runnable?): Thread { + val t = underlyingFactory.newThread(r) + t.name = name + "-" + threadNumber.getAndIncrement() + return t + } +} + +fun newNamedSinleThreadExecutor(name: String): ExecutorService { + return Executors.newSingleThreadExecutor(NamedThreadFactory(name, Executors.defaultThreadFactory())) +}