fixed concurrent incrementation problems
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
b5ce74b0f1
commit
28aff516eb
@ -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
|
||||
}
|
Reference in new issue