-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
I am deeply interested in the multithreading, parallelism, async and coroutine design space and I journal about it everyday in my ideas journal.
I wrote a toy very simple 1:M kernel threads:N lightweight thread runtime in terrible Rust, C and Java.
Hot loops use a structure for its limit and looping variable. Then to cancel the loop, you set the looping variable to the limit from a scheduling thread, cancelling the loop. This is used for process switching and scheduling but it can also be used for cancellation.
Can create very responsive code this way, it's even possible to cancel while (true) loops by replacing them with while (!preempted) {}.
https://github.com/samsquire/preemptible-thread
There is potential for a race, but that can be detected and worked around.
Well, java "survived" without it because, at the time, most other languages didn't have sumtypes either. But almost every new/modern language does. Exceptions are rare (golang is one of them and even for golang there are discussions: https://github.com/golang/go/issues/57644)
> To say Kotlin doesn't have a future when it is one of the widest used languages is a stretch
Well, let me say it like that: if Java and Kotlin continue to progress with the same speed like they do now, then Kotlin will not be a "better Java" anymore and the only selling-point will be IDE support (if that's even possible).