Chatting with @snicoll, the current description of virtual threads and the impact on the JVM exiting is a little hard to understand. It currently reads as follows:

One side effect of virtual threads is that these threads are daemon threads. A JVM will exit if there are no non-daemon threads.

We think the following may be easier to understand:

One side effect of virtual threads is that they are daemon threads. A JVM will exit if all of its threads are daemon threads.