org.apache.pekko.actor.instrumentation
Members list
Type members
Classlikes
Thin wrapper used while exchanging an UnstartedCell for a real ActorCell instance. This wrapper is only meant to be used during the execution of UnstartedCell.replaceWith(...), for the sole purpose of ensuring that all messages that might have been accumulated in the UnstartedCell will get their Context propagated as expected.
Thin wrapper used while exchanging an UnstartedCell for a real ActorCell instance. This wrapper is only meant to be used during the execution of UnstartedCell.replaceWith(...), for the sole purpose of ensuring that all messages that might have been accumulated in the UnstartedCell will get their Context propagated as expected.
For reference, we used to have a copy/pasted and modified version of UnstartedCell.replaceWith(...) as part of the instrumentation, but there were tiny bugs related to accessing internal state on the UnstartedCell while running our modified version of the method. These bugs lead to losing System Messages in certain situations, which eventually leads to actors not being shut down. The CellWrapper approach ensures that the internal calls to UnstartedCell.replaceWith#drainSysmsgQueue() are unchanged, while still ensuring that the Kamon Context will be propagated for all queued messages.
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any