You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The previous version of clinit_wrapper did not conform to the JVM
specification (section 5.5) as it did not support concurrency. More
specifically, the clinit_wrapper has to be carefully synchronised
as other threads may try to initialize a given class or interface
at the same-time.
This commit makes the clinit_wrapper thread-safe by introducing a
critical section and two state variables. The commit implements a
simplification of the algorithm defined in section 5.5 of the JVM
specification. For instance, exceptions thrown during the execution
of static initializers are not properly handled.
0 commit comments