Skip to main content

last_call_fell_through

Function last_call_fell_through 

Source
pub fn last_call_fell_through() -> bool
Expand description

Whether this thread’s most recent HotFn call found a jump table installed but no mapping for its own key, and so ran the function compiled into the calling image.

A purely diagnostic read; dispatch never consults it. The key is the address of call_it as seen by the image the call is made from, and the table’s keys are the running executable’s (base image) addresses. So a miss means one of three things:

  • Stale code: after a patch that changes a generic call’s type parameters (e.g. a component’s state type), the patched monomorphisation has a new symbol the running binary never calls, so the base caller’s old code keeps running.
  • Nothing to patch: a hot function the patch did not recompile has no entry.
  • A benign patch-image caller: a call made from patch code (e.g. a patched component’s rebuild calling a nested component’s hot function) computes the patch image’s own call_it address, which is never a key. A call from the newest patch’s code already runs the newest code; one from an older patch’s code still reachable through its vtables runs that older patch’s version.

This flag records only the outcome. The missed key, with the image it lies in, is recorded separately (missed_keys); that is what tells these apart.