[crac] RFR: Ensure all notifications finish even if only daemon threads remain [v2]
Anton Kozlov
akozlov at openjdk.org
Thu May 4 17:25:46 UTC 2023
On Thu, 4 May 2023 17:17:46 GMT, Anton Kozlov <akozlov at openjdk.org> wrote:
>> If as a result of beforeCheckpoint() no more non-daemon threads remain, it's possible that VM exits prematurely, before one of afterRestore() get a chance to create another non-daemon thread that will keep VM alive. Triggering checkpoint via jcmd (so checkpointRestore() method is executed on daemon attach-listener thread), increases probability to step in the problem.
>>
>> The change ensures all notifications are done while there is at least one non-daemon thread. The notification methods are still called from the original thread.
>
> Anton Kozlov has updated the pull request incrementally with one additional commit since the last revision:
>
> Test update
Thank you for review.
> Rather than clobbering the 'general' C/R code with a fix for one issue, there is an interface perfectly suited to host this - a Resource.
Having Resource abstraction does not mean that is necessary to use. Resources are suited for objects which may or may not exist and still need to receive notifications. Here we have no problems with doing something directly. So we don't need to rely on some implicit ordering, nor don't need to change Contextes structure.
-------------
PR Review: https://git.openjdk.org/crac/pull/62#pullrequestreview-1413543170
More information about the crac-dev
mailing list