Spec-Zone.ru › OpenJDK 21

Класс 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(CallSiteDescriptor descriptor)
Создаёт новый вызов со стратегией мономорфного кэширования встроенных вызовов.

Краткое описание методов

Модификатор и тип Метод Описание
void relink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
Этот метод вызывается динамическим линковщиком каждый раз, когда вызов перелинковывается (но см. RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle) для исключения).
void resetAndRelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
Этот метод вызывается динамическим линковщиком каждый раз, когда вызов перелинковывается и линковщик хочет, чтобы вызов отбросил все предыдущие состояния связывания (в этом он отличается от RelinkableCallSite.relink(GuardedInvocation, MethodHandle)).

Методы, объявленные в классе jdk.dynalink.support.AbstractRelinkableCallSite

getDescriptor, initialize

Методы, объявленные в классе java.lang.invoke.MutableCallSite

dynamicInvoker, getTarget, setTarget, syncAll

Методы, объявленные в классе java.lang.invoke.CallSite

type

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API