[coyotos-dev] Abandoning FCRBs -- back to endpoints
Jonathan S. Shapiro
shap at eros-os.com
Thu Feb 15 14:44:37 CST 2007
Since I'm obviously not going to get the edit finished today, I want to
summarize where the whole FCRB thing is going:
1. FCRBs are going away.
2. All sends now go to endpoints, which in turn name their target
process. The payload match functions that were previously handled by
FCRBs are now done in endpoints. Every endpoint has an endpoint id
(data) field that is meaningful only to the receiver.
3. Processes perform an explicit receive phase (for now, no buffered
delivery, but more on that later). The receive may be open or closed.
If closed, it specifies an endpoint ID of interest.
4. On receipt, both the protected payload of the invoked capability and
the endpoint ID are provided to the receiver.
5. In addition to the PM bit, an endpoint has a SQ bit, which means: "if
the receiver is not receiving on this endpoint, and the endpoint
wants to deliver, issue an exception (MessagePendingException,
EndpointID) to the process to get its attention.
Why SQ you ask? "SQueak", as in "the SQueaky wheel gets the grease".
At a later time I will introduce an AsynchronousEndpoint that does what
FCRBs were intended to do. This variant *can* be used wherever an
endpoint can be used, but has the advantage that messages to it will not
be dropped if the receiver is not listening. An AsynchronousEndpoint has
enough state to buffer the registerized portion of the incoming message.
shap
--
Jonathan S. Shapiro, Ph.D.
Managing Director
The EROS Group, LLC
+1 443 927 1719 x5100
More information about the coyotos-dev
mailing list