qicosmos / rest_rpc

modern C++(C++11), simple, easy to use rpc framework
MIT License
1.7k stars 370 forks source link

客户端可能遗留僵尸promise? #52

Open huangzhaowei0 opened 2 years ago

huangzhaowei0 commented 2 years ago

当客户端同步调用超时,抛出 std::out_of_range("timeout or deferred") 之前,并未从 futuremap 中擦除相应的 promise 对象?

qicosmos commented 2 years ago

是最新代码出现的问题吗,还是之前的问题?

qicosmos commented 2 years ago

有可能是最近的修改引起的问题。

huangzhaowei0 commented 2 years ago

感觉是以前就有吧。但是最新代码里面是有这个问题的,就是 rpc_client 的 call 方法里面,找一下 throw std::exception(... ,一看便知。

顺便感谢一下!这个库用起来很简单。

luodaoyi commented 2 years ago

我一调用同步call就崩溃 现在一直用的异步 挺好的

qicosmos commented 2 years ago

@luodaoyi 跑的是example里面的同步call吗?可以发一个测试代码,问题集中反馈一下,我抽空fix。

qicosmos commented 2 years ago

https://github.com/qicosmos/rest_rpc/commit/a4224a3c93c3e6a582d7a94c51df9b091da232c7 fix