So, we have a kotlin wrapper around vulkan which relies on inline classes for vulkan identifiers (which are usually Long
s)
As far as I got, Java (9+) Cleaner
is supposed to work only with classes.
Here an example
I tried to modify that in order to run with plain primitives
fun main() {
val cleaner = Cleaner.create()
for (i in 0..9) {
val id = Integer.toString(i)
val vkObject = 0L + i
cleaner.register(vkObject, CleanerRunnable(id))
}
//myObjects are not reachable anymore
//do some other memory intensive work
for (i in 1..10000) {
val a = IntArray(10000)
try {
Thread.sleep(1)
} catch (e: InterruptedException) {
}
}
}
But unfortunately without success.
So my question is if there is a way to have Cleaner
working with primitives representing native off-heap resources without having to wrap them in classes