【发布时间】:2017-10-11 14:32:30
【问题描述】:
我正在尝试在现有项目中使用 Cap'n Proto,该项目由通过 UDS 进行通信的客户端和服务器组成。我没有资源(我怀疑它会被接受)来重做所有客户端-服务器 RPC,但我想从 Cap'n Proto 序列化机制中受益。不幸的是,在我看来这是不可能的。
最大的问题是服务器端,它是单线程的(如果多线程没有任何严肃的论据,它将一直如此)并使用它自己的基于轮询的循环。所有事件都被部分读取,服务器无法阻止等待任何事件被完全读取 - 这就是我卡住的地方。我们有自己的协议和类来包装消息,当事件被完全读取时,它们可以消耗文件描述符中的字节并通知,以便服务器可以处理它。我想我已经分析了大部分 Cap'n Proto 接口(序列化、异步序列化),并且看起来,如果不进行任何修改,它就不能以相同的方式使用。
我真的希望我错过了什么。我有吗?
【问题讨论】:
标签: c++ asynchronous capnproto