Класс 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, 2023, 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/21/docs/api/jdk.dynalink/jdk/dynalink/support/SimpleRelinkableCallSite.html