Updated to use the conversant disruptor for the blocking pool implementation
This commit is contained in:
parent
8026dd0170
commit
5cb84d9c13
|
@ -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<KMutableProperty<String>>()
|
||||
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")
|
||||
}
|
||||
|
||||
///////////////////////////////
|
||||
|
|
|
@ -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<T> extends ObjectPool<T> {
|
|||
private final PoolableObject<T> poolableObject;
|
||||
|
||||
BlockingPool(PoolableObject<T> poolableObject, int size) {
|
||||
this(poolableObject, new ArrayBlockingQueue<T>(size), size);
|
||||
this(poolableObject, new DisruptorBlockingQueue<T>(size), size);
|
||||
}
|
||||
|
||||
BlockingPool(final PoolableObject<T> poolableObject, final BlockingQueue<T> queue, final int size) {
|
||||
|
|
Loading…
Reference in New Issue