Andrew Ebling
07/14/2021, 3:37 PMhwData
. Rather than sleeping/spinning until the data becomes available, is there a coroutines-based solution to this?
embeddedServer(Netty, 8080) {
routing {
get("/my_endpoint") {
triggerDataReadFromHardware()
while(hwData == null) { Thread.sleep(100) }
call.respond("${hwData!!}\n")
hwData = null
}
}
}.start(wait = false)
ephemient
07/14/2021, 3:44 PMephemient
07/14/2021, 3:45 PMAndrew Ebling
07/14/2021, 3:50 PMstreetsofboston
07/14/2021, 4:19 PMstreetsofboston
07/14/2021, 4:21 PMDeferred<HwData>
... then you can do call.respond("${triggerDataReadFromHardware().await()}\n")
Andrew Ebling
07/14/2021, 4:27 PMephemient
07/14/2021, 4:59 PMephemient
07/14/2021, 5:01 PM.complete()
ephemient
07/14/2021, 5:01 PMstreetsofboston
07/14/2021, 7:21 PMDeferred<HwData> hwData = async(<http://Dispatchers.IO|Dispatchers.IO>) { hardware.poll(...) }
hardware.trigger(...)
return hwData
streetsofboston
07/14/2021, 7:23 PM