Not resuming Virtual Threads?

Johannes Kuhn info at j-kuhn.de
Thu Jul 2 17:42:19 UTC 2020


After playing around with Virtual Threads a bit, I got to the question:
What happens if you don't resume a virtual thread?

This could be either done by accident - single thread carrier, that 
waits on an other virtual thread that should be executed on the same 
carrier, but the virtual thread is pinned -
or on purpose, like not iterating over all elements in my Generator 
example[1]. Or closing the executor once you got an answer.

What happens with those Continuations? Can they be garbage collected?
What about held locks? How is this different from Thread.suspend?
Isn't that inherently dangerous?

Just trying to get a better understanding of the model here.

- Johannes

[1]: https://gist.github.com/DasBrain/abfdaa44b44d898f5d3c3888619eb49b



More information about the loom-dev mailing list