木头云
木头云
我查了下,posix里只有`pthread_cond_timedwait`可以用`CLOCK_MONOTONIC`,`pthread_mutex_timedlock`就不行了;win上`WaitForSingleObject`也有同样的问题,想解决似乎很麻烦([https://github.com/microsoft/STL/issues/718](https://github.com/microsoft/STL/issues/718))。 一个简单的做法是在调试的时候把`def.h`里的默认超时改成`-1`: ```c++ enum : std::uint32_t { invalid_value = (std::numeric_limits::max)(), default_timeout = 100, // ms }; ```
What is your use case like?
你指的是给大块消息用的对象池吗?这个在clear的时候不是释放了嘛?
我原本的设计是不释放的,因为这里的内存池是给所有链路使用的,而不是一条。如果你在这里清理的话,其他链路上正在跑的消息会出问题的。 你如果比较在意这里,可能需要把全局的池改成这个handle自己的池。
用master分支上的代码试试?
ipc::route 机制有点差别,可能有bug。我有空看下咋回事
最近又忙起来了,可能端午我在家看看
是的,因为连接是假的。我打算重构的时候用一些别的方式来做,比如用一个socket做连接;或者干脆抛弃连接的概念……
奇怪,我测试了下是正常的  你的崩溃指的是不是没有办法用任何`signal`捕获做退出清理?这种情况下确实是不支持的。 重启恢复倒是有办法,直接执行类似`sudo rm -rf /dev/shm/__IPC_SHM___*`这样的语句就可以了,需要注意的是确保所有route或channel进程都不存在。
嗯,对的,这种崩溃现在确实没办法恢复 =.=