fixed concurrent incrementation problems
continuous-integration/drone/push Build is passing Details

production
Override-6 2 years ago
parent b5ce74b0f1
commit 28aff516eb

@ -1,7 +1,7 @@
package org.tbasket
import org.tbasket.api.Endpoint
import org.tbasket.compute.IncrementHandler
import org.tbasket.handler.IncrementHandler
import java.util.Properties

@ -1,20 +1,22 @@
package org.tbasket.compute
package org.tbasket.handler
import org.tbasket.api.compute.APIRequestHandler
import zio.http.{Request, Response}
import java.util.concurrent.atomic.AtomicInteger
object IncrementHandler extends APIRequestHandler {
@volatile private var i = 0
private val i = new AtomicInteger(0)
def getCounter: Int = i
def getCounter: Int = i.get()
override def get(request: Request): Response = {
Response.json(s"{\"value\": $i}")
}
override def post(request: Request): Response = {
i += 1
i.incrementAndGet()
println(s"Counter is now $i")
Response.ok
}

@ -2,7 +2,7 @@ package org.tbasket.test
import io.circe.parser._
import org.junit.jupiter.api.{Assertions, Test}
import org.tbasket.compute.IncrementHandler
import org.tbasket.handler.IncrementHandler
import zio.http.model.Status
import zio.http.{Body, Path, Request, URL}