From 5cb84d9c13c2e6097caae044e26a63a130b1c4e1 Mon Sep 17 00:00:00 2001 From: nathan Date: Fri, 14 Jun 2019 14:03:58 +0200 Subject: [PATCH] Updated to use the conversant disruptor for the blocking pool implementation --- build.gradle.kts | 38 ++++-------------------- src/dorkbox/objectPool/BlockingPool.java | 5 ++-- 2 files changed, 9 insertions(+), 34 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 3a2457c..df0cbb5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,11 +14,7 @@ * limitations under the License. */ -import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask import java.time.Instant -import java.util.* -import kotlin.reflect.KMutableProperty -import kotlin.reflect.full.declaredMemberProperties /////////////////////////////// ////// PUBLISH TO SONATYPE / MAVEN CENTRAL @@ -36,14 +32,14 @@ plugins { `maven-publish` // close and release on sonatype - id("io.codearte.nexus-staging") version "0.20.0" + id("io.codearte.nexus-staging") version "0.21.0" id("com.dorkbox.CrossCompile") version "1.0.1" id("com.dorkbox.Licensing") version "1.4" - id("com.dorkbox.VersionUpdate") version "1.4.1" - id("com.dorkbox.GradleUtils") version "1.0" + id("com.dorkbox.VersionUpdate") version "1.6" + id("com.dorkbox.GradleUtils") version "1.2" - kotlin("jvm") version "1.3.21" + kotlin("jvm") version "1.3.31" } object Extras { @@ -68,34 +64,11 @@ object Extras { /////////////////////////////// ///// assign 'Extras' /////////////////////////////// +GradleUtils.load("$projectDir/../../gradle.properties", Extras) description = Extras.description group = Extras.group version = Extras.version -val propsFile = File("$projectDir/../../gradle.properties").normalize() -if (propsFile.canRead()) { - println("\tLoading custom property data from: [$propsFile]") - - val props = Properties() - propsFile.inputStream().use { - props.load(it) - } - - val extraProperties = Extras::class.declaredMemberProperties.filterIsInstance>() - props.forEach { (k, v) -> run { - val key = k as String - val value = v as String - - val member = extraProperties.find { it.name == key } - if (member != null) { - member.setter.call(Extras::class.objectInstance, value) - } - else { - project.extra.set(k, v) - } - }} -} - licensing { license(License.APACHE_2) { @@ -162,6 +135,7 @@ tasks.compileJava.get().apply { dependencies { api("org.slf4j:slf4j-api:1.7.25") + api("com.conversantmedia:disruptor:1.2.15") } /////////////////////////////// diff --git a/src/dorkbox/objectPool/BlockingPool.java b/src/dorkbox/objectPool/BlockingPool.java index d448bb0..33bbd8c 100644 --- a/src/dorkbox/objectPool/BlockingPool.java +++ b/src/dorkbox/objectPool/BlockingPool.java @@ -15,9 +15,10 @@ */ package dorkbox.objectPool; -import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; +import com.conversantmedia.util.concurrent.DisruptorBlockingQueue; + /** * A blocking pool of a specific size, where the entire pool is initially filled, and when the pool is empty, a * {@link ObjectPool#take()} will wait for a corresponding {@link ObjectPool#put(Object)}. @@ -29,7 +30,7 @@ class BlockingPool extends ObjectPool { private final PoolableObject poolableObject; BlockingPool(PoolableObject poolableObject, int size) { - this(poolableObject, new ArrayBlockingQueue(size), size); + this(poolableObject, new DisruptorBlockingQueue(size), size); } BlockingPool(final PoolableObject poolableObject, final BlockingQueue queue, final int size) {