cpp-ipc icon indicating copy to clipboard operation
cpp-ipc copied to clipboard

C++ IPC Library: A high-performance inter-process communication using shared memory on Linux/Windows.

Results 69 cpp-ipc issues
Sort by recently updated
recently updated
newest added

![image](https://github.com/mutouyun/cpp-ipc/assets/139225909/550dcc23-49db-4ba7-929b-7d7ba04a1dd1) 这个地方不用释放内存吗?

I'm trying to achieve large message ping-pong between 2 processes, but when I set `data_length=8*1024*1024`, I get struct inside `recv` call `data_length=7*1024*1024` --> ok `data_length=8*1024*1024` --> fail `data_length=16*1024*1024` --> fail...

非必现 场景: 进程 A 和 B 使用 channel 通信 windows10 进程A在获取large缓冲区时锁住的时候异常死掉了,导致后面再起来的A和B都会卡在获取锁的地方 acquire_storage ![image](https://user-images.githubusercontent.com/24283249/198282982-3ac130a3-dee8-47af-b643-6175f62ab063.png) 其他进程会在这个lock这里一直死等 ![image](https://user-images.githubusercontent.com/24283249/198283286-420c0d30-843e-49af-83f7-feda54fccfc3.png) ![image](https://user-images.githubusercontent.com/24283249/198283615-b06c4f26-b68d-4279-ad26-6e546c5f5879.png) 另外延伸一下这个问题,当进程A收到ipc buff 但是异常没有释放,整个large 缓冲区就会一直被占用一个槽位了 作者大大这边有没什么好的解决方案,这两个问题的根源都是共享内存上的数据结构和进程生命周期无法关联。

bug

1、发送端在发送消息的时候,如何知道有有哪几个客户端,退出了连接,是怎么实现的。 2、对于高频的发送是否支持,比如发送周期是10ms一次的,循环发送。这样会不会导致内存泄露。 3、在高频(20m

在这个 ipc::chan 模式下,发送一个大小为600字节的结构体的时候,发送方一秒一次,接收端收了几十个数据之后就卡住不动了,是不是哪里有问题呀?求指导。 还有就是这个发送接收的延迟要好几十us,怎么感觉和excel里面的性能测试不一样呢?

如何修改才能在gcc5上支持使用呢

https://github.com/mutouyun/cpp-ipc/blob/refactoring/include/libimp/result.h#L99 `result` 需要优化:`DefTraits`的设计目前拓展并不方便 https://github.com/mutouyun/cpp-ipc/blob/refactoring/include/libimp/system.h#L40 `error` 需要重构:参考标准库的 [error_code](https://en.cppreference.com/w/cpp/error/error_code) 设计,考虑加入可外部自定义分类,及类别匹配的能力 https://github.com/mutouyun/cpp-ipc/blob/refactoring/include/libimp/log.h#L32 `log::context` 需要重构:考虑整体打包参数,让外部可根据上下文自定义完整的日志输出(类型擦除可能会带来额外的性能损失,需要 benchmark)

enhancement

可能的修改和优化: 1. 目前的`element`定义仍然需要耦合模式信息 2. 生产消费模型需要配合修改 & 重构

enhancement

你好,我为了接触广播模式下receiver最大通道的限制.使用std::array 替换了std::atomic,对receiver进行管理,但是在进行测试的时候发现,有些receiver客户端出现了掉线的情况.不知道这样的更改是否会对整个程序产生影响. 请问,是否有更好的方法可以解除receiver最大通道的限制? 更改后的代码如下所示: ```cpp #pragma once #include #include #include #include #include #include "libipc/def.h" #include "libipc/rw_lock.h" #include "libipc/platform/detail.h" namespace ipc { namespace circ { #define MAX_CONNECT_CNT 64 using u1_t =...

您好,可以提供一份项目实现的简单文档或者思路吗,小白自己理不清思路 :)