Allow cancellation of all capability contexts
This commit is contained in:
committed by
Jacob Alexander
parent
49bda5ccae
commit
0ec4d0b778
@@ -75,10 +75,19 @@ public:
|
||||
kj::Own<PyRefCounter> py_server;
|
||||
kj::Own<PyRefCounter> kj_loop;
|
||||
|
||||
#if (CAPNP_VERSION_MAJOR < 1)
|
||||
PythonInterfaceDynamicImpl(capnp::InterfaceSchema & schema,
|
||||
kj::Own<PyRefCounter> _py_server,
|
||||
kj::Own<PyRefCounter> kj_loop)
|
||||
: capnp::DynamicCapability::Server(schema), py_server(kj::mv(_py_server)), kj_loop(kj::mv(kj_loop)) { }
|
||||
: capnp::DynamicCapability::Server(schema),
|
||||
py_server(kj::mv(_py_server)), kj_loop(kj::mv(kj_loop)) { }
|
||||
#else
|
||||
PythonInterfaceDynamicImpl(capnp::InterfaceSchema & schema,
|
||||
kj::Own<PyRefCounter> _py_server,
|
||||
kj::Own<PyRefCounter> kj_loop)
|
||||
: capnp::DynamicCapability::Server(schema, { true }),
|
||||
py_server(kj::mv(_py_server)), kj_loop(kj::mv(kj_loop)) { }
|
||||
#endif
|
||||
|
||||
~PythonInterfaceDynamicImpl() {
|
||||
}
|
||||
@@ -87,6 +96,12 @@ public:
|
||||
capnp::CallContext< capnp::DynamicStruct, capnp::DynamicStruct> context);
|
||||
};
|
||||
|
||||
inline void allowCancellation(capnp::CallContext<capnp::DynamicStruct, capnp::DynamicStruct> context) {
|
||||
#if (CAPNP_VERSION_MAJOR < 1)
|
||||
context.allowCancellation();
|
||||
#endif
|
||||
}
|
||||
|
||||
class PyAsyncIoStream: public kj::AsyncIoStream {
|
||||
public:
|
||||
kj::Own<PyRefCounter> protocol;
|
||||
|
||||
Reference in New Issue
Block a user