Класс SimpleRelinkableCallSite
java.lang.Object
java.lang.invoke.CallSite
java.lang.invoke.MutableCallSite
jdk.dynalink.support.AbstractRelinkableCallSite
jdk.dynalink.support.SimpleRelinkableCallSite
- Все реализуемые интерфейсы:
RelinkableCallSite
public class SimpleRelinkableCallSite extends AbstractRelinkableCallSite
Переустанавливаемый вызов, который реализует стратегию мономорфного кеширования встраивания, который связывается только с одним
GuardedInvocation в любой момент времени. Если защита этого единственного вызова терпит неудачу или у него есть недействительная точка переключения или сработало исключение для аннулирования, то вызов будет отброшен, и его связанный DynamicLinker запросит его переустановку.Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SimpleRelinkableCallSite |
Создаёт новый вызов со стратегией мономорфного кеширования встраивания. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
relink |
Этот метод вызывается динамическим линкователем каждый раз, когда вызов переустанавливается (но см. RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle) для исключений). |
void |
resetAndRelink |
Этот метод вызывается динамическим линкователем каждый раз, когда вызов переустанавливается и линковщик хочет, чтобы вызов отбросил любое предыдущее состояние связывания (в этом заключается его отличие от RelinkableCallSite.relink(GuardedInvocation, MethodHandle)). |
Методы, объявленные в классе jdk.dynalink.support.AbstractRelinkableCallSite
getDescriptor, initialize
Методы, объявленные в классе java.lang.invoke.MutableCallSite
dynamicInvoker, getTarget, setTarget, syncAll
Подробное описание конструкторов
SimpleRelinkableCallSite
public SimpleRelinkableCallSite(CallSiteDescriptor descriptor)
Создаёт новый вызов со стратегией мономорфного кеширования встраивания.
- Параметры:
-
descriptor- дескриптор для этого вызова
Подробное описание методов
relink
public void relink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
Описание, скопированное из интерфейса:
RelinkableCallSiteЭтот метод вызывается динамическим линкователем каждый раз, когда вызов переустанавливается (но см.
RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle) для исключений). Ему будет передан GuardedInvocation, который вызов должен включить в целевой обработчик методов. Когда этот метод вызывается, вызов может оставить другие неаннулированные вызовы для реализации полиморфных кешей встраивания и объединить их с этим вызовом, чтобы сформировать его конечную цель.- Параметры:
-
guardedInvocation- защищённый вызов, который вызов должен включить в целевой обработчик методов. -
relinkAndInvoke- обработчик методов переустановки и вызова. Это обработчик методов, соответствующий типу метода вызова, который предоставляетсяDynamicLinkerкак обратный вызов. Он должен использоваться этим вызовом в качестве окончательного резервного варианта, когда он не может вызвать свою цель с переданными аргументами. Резервный метод такой, что при его вызове он попытается получить подходящую целевуюGuardedInvocationдля вызова и впоследствии вызоветRelinkableCallSite.relink(GuardedInvocation, MethodHandle)илиRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle), а затем вызовет цель.
resetAndRelink
public void resetAndRelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
Описание, скопированное из интерфейса:
RelinkableCallSiteЭтот метод вызывается динамическим линкователем каждый раз, когда вызов переустанавливается и линковщик хочет, чтобы вызов отбросил любое предыдущее состояние связывания (в этом заключается его отличие от
RelinkableCallSite.relink(GuardedInvocation, MethodHandle)). Ему будет передан GuardedInvocation, который вызов должен использовать для построения нового целевого обработчика методов. Когда этот метод вызывается, вызов не рекомендуется сохранять предыдущее состояние и должен связать только текущий вызов.- Параметры:
-
guardedInvocation- защищённый вызов, который вызов должен использовать для построения своего целевого обработчика методов. -
relinkAndInvoke- обработчик методов переустановки и вызова. Это обработчик методов, соответствующий типу метода вызова, который предоставляетсяDynamicLinkerкак обратный вызов. Он должен использоваться этим вызовом в качестве окончательного резервного варианта, когда он не может вызвать свою цель с переданными аргументами. Резервный метод такой, что при его вызове он попытается получить подходящую целевуюGuardedInvocationдля вызова и впоследствии вызоветRelinkableCallSite.relink(GuardedInvocation, MethodHandle)илиRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle), а затем вызовет цель.
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/jdk.dynalink/jdk/dynalink/support/SimpleRelinkableCallSite.html