public interface ImageGeneratorThreadMarker
way
to obtain the terminated replacement of itself.
Not intented to be implemented by customer threads. Allowing background threads that are not
terminated can lead to very hard to debug errors. If you have background threads running while
the static analysis is running, then bad race conditions can happen: the static analysis looks at
a heap snapshot at a "random" time from the point of view of the background thread. If the
background thread makes new objects available after the last heap snapshot, then the static
analysis misses objects of the image heap, which leads to either strange errors during image
generation (when the image heap is written), or even worse strange behavior at run time (when a
field is, e.g., constant folded to null
because the static analysis only saw the
null
value).
Modifier and Type | Method and Description |
---|---|
default Thread |
asTerminated() |
default Thread asTerminated()