[crac] RFR: Fix ordering of invocation on Resources [v13]

Radim Vansa duke at openjdk.org
Fri May 12 11:32:24 UTC 2023


On Wed, 10 May 2023 12:49:03 GMT, Radim Vansa <duke at openjdk.org> wrote:

>> * keeps the original handling of exceptions: afterRestore is called even if beforeCheckpoint throws
>> * allows to register a resource in a context that did not start beforeCheckpoint invocations yet
>> * registering resource in previous/running context fails the checkpoint but does not trigger exception immediately
>>    * instead this will be one of the recorded exceptions and the resource has a chance to fire next time
>> * allowed registration of resources can be invoked from other thread without deadlock; illegal registration can deadlock, though
>
> Radim Vansa has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Revert removing the logging configuration

Did you change this method? In #43 this uses loop rather than streams. I think that in the Core code the need to remove lambdas is unavoidable; the scope of what's happening after all notifications and before the `afterRestore` is minimal.

This is similar to early stages of the JDK boot; in some classes you would run into NPE had you tried to use lambdas (e.g. when initializing `JDKContext.PRIORITY_COMPARATOR`).

-------------

PR Comment: https://git.openjdk.org/crac/pull/60#issuecomment-1545597739


More information about the crac-dev mailing list