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) 単相インライン・キャッシュ戦略を使用して新しいコール・サイトを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明voidrelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) このメソッドは、呼び出しサイトが再リンクされるたびに動的リンカーによって呼び出されます。(例外についてはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)を参照してください)。voidresetAndRelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) このメソッドは、コール・サイトが再リンクされるたびにダイナミック・リンカーによって呼び出され、リンカーはコール・サイトが以前のリンケージ・ステート(それは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)を呼び出して、最後にターゲットを呼び出すような方法です。
-