Commit da96d673 authored by Kenton Varda's avatar Kenton Varda

unsupportedPipelineOps is not workable.

parent d3869607
......@@ -352,13 +352,7 @@ struct Return {
# Indicates that the call was canceled due to the caller sending a Finish message
# before the call had completed.
unsupportedPipelineOp @5 :Void;
# The call was addressed to a `PromisedAnswer` that was not understood by the callee because
# it used features that the callee's RPC implementation does not support. The caller should
# wait for the first call to return and then retry the dependent call as a regular,
# non-pipelined call.
redirect @6 :ThirdPartyCapId;
redirect @5 :ThirdPartyCapId;
# **(level 3)**
#
# The call has been redirected to another vat, and the result should be obtained by connecting
......@@ -861,21 +855,6 @@ struct PromisedAnswer {
# pointed to by a field of the struct, you need a `getPointerField` op.
struct Op {
# If an RPC implementation receives an `Op` of a type it doesn't recognize, it must immediately
# stop serving pipeline requests on this question ID. The crurrent request, as well as
# all future pipeline requests on the same question ID, must return with
# `unsupportedPipelineOp` set. The caller must then arrange to re-send the calls as normal
# calls later. The reason that all future pipeline calls on the same question must fail is
# so that if the caller was relying on the calls being delivered in a particular order, this
# requirement is not violated.
#
# TODO(soon): There's still a problem here in that if the call returns then the caller might
# start making regular (non-pipeline) calls to it before it finds out that the pipelined calls
# failed. Also, what about PromisedAnswers that appear in CapDescriptors? Maybe what really
# needs to happen here is, the callee echos the PromisedAnswer back to the caller to say
# "I don't know how to resolve this; please do it for me", and in the meantime it blocks all
# calls to the capability? Ick...
union {
noop @0 :Void;
# Does nothing. This member is mostly defined so that we can make `Op` a union even
......
......@@ -425,72 +425,65 @@ const ::capnp::_::RawSchema s_dae8b0f61aab5f99 = {
0xdae8b0f61aab5f99, b_dae8b0f61aab5f99.words, 61, d_dae8b0f61aab5f99, m_dae8b0f61aab5f99,
1, 3, i_dae8b0f61aab5f99, nullptr, nullptr
};
static const ::capnp::_::AlignedData<124> b_9e19b28d3db3573a = {
static const ::capnp::_::AlignedData<108> b_9e19b28d3db3573a = {
{ 0, 0, 0, 0, 5, 0, 5, 0,
58, 87, 179, 61, 141, 178, 25, 158,
0, 0, 0, 0, 1, 0, 1, 0,
80, 162, 82, 37, 27, 152, 18, 179,
2, 0, 7, 0, 0, 0, 5, 0,
2, 0, 7, 0, 0, 0, 4, 0,
2, 0, 0, 0, 0, 0, 0, 0,
17, 0, 0, 0, 186, 0, 0, 0,
25, 0, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
21, 0, 0, 0, 143, 1, 0, 0,
21, 0, 0, 0, 87, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
99, 97, 112, 110, 112, 47, 114, 112,
99, 46, 99, 97, 112, 110, 112, 58,
82, 101, 116, 117, 114, 110, 0, 0,
0, 0, 0, 0, 1, 0, 1, 0,
28, 0, 0, 0, 3, 0, 4, 0,
24, 0, 0, 0, 3, 0, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
181, 0, 0, 0, 90, 0, 0, 0,
153, 0, 0, 0, 90, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
180, 0, 0, 0, 2, 0, 1, 0,
188, 0, 0, 0, 2, 0, 1, 0,
152, 0, 0, 0, 2, 0, 1, 0,
160, 0, 0, 0, 2, 0, 1, 0,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
185, 0, 0, 0, 106, 0, 0, 0,
157, 0, 0, 0, 106, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
184, 0, 0, 0, 2, 0, 1, 0,
204, 0, 0, 0, 2, 0, 1, 0,
156, 0, 0, 0, 2, 0, 1, 0,
176, 0, 0, 0, 2, 0, 1, 0,
2, 0, 255, 255, 1, 0, 0, 0,
0, 0, 1, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
201, 0, 0, 0, 66, 0, 0, 0,
173, 0, 0, 0, 66, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
196, 0, 0, 0, 2, 0, 1, 0,
204, 0, 0, 0, 2, 0, 1, 0,
168, 0, 0, 0, 2, 0, 1, 0,
176, 0, 0, 0, 2, 0, 1, 0,
3, 0, 254, 255, 1, 0, 0, 0,
0, 0, 1, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
201, 0, 0, 0, 82, 0, 0, 0,
173, 0, 0, 0, 82, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
200, 0, 0, 0, 2, 0, 1, 0,
208, 0, 0, 0, 2, 0, 1, 0,
172, 0, 0, 0, 2, 0, 1, 0,
180, 0, 0, 0, 2, 0, 1, 0,
4, 0, 253, 255, 0, 0, 0, 0,
0, 0, 1, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
205, 0, 0, 0, 74, 0, 0, 0,
177, 0, 0, 0, 74, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
204, 0, 0, 0, 2, 0, 1, 0,
212, 0, 0, 0, 2, 0, 1, 0,
5, 0, 252, 255, 0, 0, 0, 0,
176, 0, 0, 0, 2, 0, 1, 0,
184, 0, 0, 0, 2, 0, 1, 0,
5, 0, 252, 255, 1, 0, 0, 0,
0, 0, 1, 0, 5, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
209, 0, 0, 0, 178, 0, 0, 0,
181, 0, 0, 0, 74, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
212, 0, 0, 0, 2, 0, 1, 0,
220, 0, 0, 0, 2, 0, 1, 0,
6, 0, 251, 255, 1, 0, 0, 0,
0, 0, 1, 0, 6, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
217, 0, 0, 0, 74, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
216, 0, 0, 0, 2, 0, 1, 0,
224, 0, 0, 0, 2, 0, 1, 0,
180, 0, 0, 0, 2, 0, 1, 0,
188, 0, 0, 0, 2, 0, 1, 0,
113, 117, 101, 115, 116, 105, 111, 110,
73, 100, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0,
......@@ -533,15 +526,6 @@ static const ::capnp::_::AlignedData<124> b_9e19b28d3db3573a = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
117, 110, 115, 117, 112, 112, 111, 114,
116, 101, 100, 80, 105, 112, 101, 108,
105, 110, 101, 79, 112, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
114, 101, 100, 105, 114, 101, 99, 116,
0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 0, 0, 0, 0,
......@@ -554,11 +538,11 @@ static const ::capnp::_::AlignedData<124> b_9e19b28d3db3573a = {
static const ::capnp::_::RawSchema* const d_9e19b28d3db3573a[] = {
&s_d625b7063acf691a,
};
static const uint16_t m_9e19b28d3db3573a[] = {4, 3, 0, 6, 2, 1, 5};
static const uint16_t i_9e19b28d3db3573a[] = {2, 3, 4, 5, 6, 0, 1};
static const uint16_t m_9e19b28d3db3573a[] = {4, 3, 0, 5, 2, 1};
static const uint16_t i_9e19b28d3db3573a[] = {2, 3, 4, 5, 0, 1};
const ::capnp::_::RawSchema s_9e19b28d3db3573a = {
0x9e19b28d3db3573a, b_9e19b28d3db3573a.words, 124, d_9e19b28d3db3573a, m_9e19b28d3db3573a,
1, 7, i_9e19b28d3db3573a, nullptr, nullptr
0x9e19b28d3db3573a, b_9e19b28d3db3573a.words, 108, d_9e19b28d3db3573a, m_9e19b28d3db3573a,
1, 6, i_9e19b28d3db3573a, nullptr, nullptr
};
static const ::capnp::_::AlignedData<49> b_d37d2eb2c2f80e63 = {
{ 0, 0, 0, 0, 5, 0, 5, 0,
......
......@@ -70,7 +70,6 @@ struct Return {
RESULTS,
EXCEPTION,
CANCELED,
UNSUPPORTED_PIPELINE_OP,
REDIRECT,
};
};
......@@ -827,9 +826,6 @@ public:
inline bool isCanceled() const;
inline ::capnp::Void getCanceled() const;
inline bool isUnsupportedPipelineOp() const;
inline ::capnp::Void getUnsupportedPipelineOp() const;
inline bool isRedirect() const;
inline bool hasRedirect() const;
inline ::capnp::ObjectPointer::Reader getRedirect() const;
......@@ -893,10 +889,6 @@ public:
inline ::capnp::Void getCanceled();
inline void setCanceled( ::capnp::Void value = ::capnp::VOID);
inline bool isUnsupportedPipelineOp();
inline ::capnp::Void getUnsupportedPipelineOp();
inline void setUnsupportedPipelineOp( ::capnp::Void value = ::capnp::VOID);
inline bool isRedirect();
inline bool hasRedirect();
inline ::capnp::ObjectPointer::Builder getRedirect();
......@@ -3594,32 +3586,6 @@ inline void Return::Builder::setCanceled( ::capnp::Void value) {
0 * ::capnp::ELEMENTS, value);
}
inline bool Return::Reader::isUnsupportedPipelineOp() const {
return which() == Return::UNSUPPORTED_PIPELINE_OP;
}
inline bool Return::Builder::isUnsupportedPipelineOp() {
return which() == Return::UNSUPPORTED_PIPELINE_OP;
}
inline ::capnp::Void Return::Reader::getUnsupportedPipelineOp() const {
KJ_IREQUIRE(which() == Return::UNSUPPORTED_PIPELINE_OP,
"Must check which() before get()ing a union member.");
return _reader.getDataField< ::capnp::Void>(
0 * ::capnp::ELEMENTS);
}
inline ::capnp::Void Return::Builder::getUnsupportedPipelineOp() {
KJ_IREQUIRE(which() == Return::UNSUPPORTED_PIPELINE_OP,
"Must check which() before get()ing a union member.");
return _builder.getDataField< ::capnp::Void>(
0 * ::capnp::ELEMENTS);
}
inline void Return::Builder::setUnsupportedPipelineOp( ::capnp::Void value) {
_builder.setDataField<Return::Which>(
2 * ::capnp::ELEMENTS, Return::UNSUPPORTED_PIPELINE_OP);
_builder.setDataField< ::capnp::Void>(
0 * ::capnp::ELEMENTS, value);
}
inline bool Return::Reader::isRedirect() const {
return which() == Return::REDIRECT;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment