All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sheinbergon.needle.knitter.PinnedThreads.kt Maven / Gradle / Ivy

There is a newer version: 0.4.0-RELEASE
Show newest version
@file:JvmName("PinnedThreadsKt")

package org.sheinbergon.needle.knitter

import org.sheinbergon.needle.AffinityDescriptor
import org.sheinbergon.needle.PinnedThread

private const val `0L` = 0L

fun pinnedThread(
    start: Boolean = true,
    isDaemon: Boolean = false,
    contextClassLoader: ClassLoader? = null,
    name: String? = null,
    affinity: AffinityDescriptor = AffinityDescriptor.from(`0L`),
    block: () -> Unit
): PinnedThread {
  val pinnedThread = PinnedThread(block::invoke, affinity)
  if (isDaemon) {
    pinnedThread.isDaemon = true
  }
  if (name != null) {
    pinnedThread.name = name
  }
  if (contextClassLoader != null) {
    pinnedThread.contextClassLoader = contextClassLoader
  }
  if (start) {
    pinnedThread.start()
  }
  return pinnedThread
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy