org.apache.pekko.actor.instrumentation

Members list

Type members

Classlikes

class CellWrapper(val underlying: Cell)

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 Object
trait Matchable
class Any