Add a ManagedEndpoint<PFooSide> type to allow for more complex actor construction

RESOLVED FIXED in Firefox 68

Status

()

enhancement
P2
normal
RESOLVED FIXED
4 months ago
4 months ago

People

(Reporter: Nika, Assigned: Nika)

Tracking

(Blocks 2 bugs)

unspecified
mozilla68
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox68 fixed)

Details

Attachments

(1 attachment)

This is specifically motivated by the desire to be able to allocate certain actors synchronously with their managers being connected. It is handled by passing around a type, like Endpoint<T>, which is then used to bind the actors on either side.

No messages may be sent before the actors are constructed, or routing errors may occur.

Blocks: 1523638
Blocks: 1538353

How is this different from Endpoint? It has been a while since I looked at them.

Flags: needinfo?(nika)

Endpoint is used to construct toplevel actors by establishing an underlying transport pipe which can be shared between the source & destination processes. These can then be linked to open a toplevel actor, and is how actors such as PBackground are created.

In contrast, ManagedEndpoint is intended to be used for constructing managed actors, which at the transport layer share the same pipe as the root actor, and route their messages to the correct destination based on the routing_id attached to the message.

Flags: needinfo?(nika) → needinfo?(continuation)
Flags: needinfo?(continuation)

(In reply to :Nika Layzell from comment #3)

In contrast, ManagedEndpoint is intended to be used for constructing managed actors, which at the transport layer share the same pipe as the root actor, and route their messages to the correct destination based on the routing_id attached to the message.

Thanks for the explanation! I've done a bit of work with Endpoints, but it was all for various GMP stuff, and I hadn't thought about how they were all top level actors.

Pushed by nlayzell@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8cde0ca01548
Add a ManagedEndpoint IPDL type for manually constructing actors, r=mccr8
Status: NEW → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
You need to log in before you can comment on or make changes to this bug.