Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save iamthiago/4a8ed22720b6c53ba90e to your computer and use it in GitHub Desktop.
Save iamthiago/4a8ed22720b6c53ba90e to your computer and use it in GitHub Desktop.
case object Run
case object Msg
class Destination extends Actor {
def receive = {
case Msg ⇒ sender ! Msg
}
}
class Client(
actor: ActorRef,
latch: CountDownLatch,
repeat: Long) extends Actor {
val initalMessages = math.min(
repeat,
2 * context.system.settings.config.getInt(
"benchmark.throughput-dispatcher.throughput"))
var sent = 0L
var received = 0L
def receive = {
case Msg ⇒
received += 1
if (sent < repeat) {
actor ! Msg
sent += 1
} else if (received >= repeat) {
latch.countDown()
}
case Run ⇒
for (i ← 0L until initalMessages) {
actor ! Msg
sent += 1
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment