Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
It seems, the invokerLock is to protect any uses of the 'request' pointer that points to the field ThreadNode.currentInvoke, not to protect the saveGlobalRef() call itself. So that, we have a hole in synchronization that was nicely discovered by Severin G in the fix for bug: https://bugs.openjdk.java.net/browse/JDK-8153711 Here are more places where the 'request' pointer is not protected with the invokerLock: invoker_enableInvokeRequests() invoker_isPending() invoker_isEnabled(). In general, these are pretty simple or rare cases that do not harm much. The function invoker_isPending() is not used at all.
|