427 Commits

Author SHA1 Message Date
mutouyun
8e070076fc 消除vs编译时的warning 2022-02-04 16:44:44 +08:00
木头云
f25668c4c2
Update CMakeLists.txt 2022-01-08 23:23:45 +08:00
木头云
5eebaeb4ee
Update mutex.h 2022-01-08 23:18:30 +08:00
木头云
15b572b7ed
Update condition.h 2022-01-08 23:18:05 +08:00
mutouyun
de9c965046 compile error for qnx 2022-01-07 22:52:34 +08:00
mutouyun
534870b824 qnx 2022-01-05 09:37:36 +08:00
mutouyun
1f65fc9832 compile error 2022-01-02 17:56:05 +08:00
mutouyun
2e35ab7685 Added QNX support 2022-01-02 17:54:07 +08:00
mutouyun
51828c2f7b Temporarily turn off 'smu' and 'mmu' modes because there are bugs in them 2022-01-02 17:24:08 +08:00
mutouyun
3344bbf799 impl robust mutex & condition (using alephzero's mtx implementation) 2021-10-23 19:06:33 +08:00
mutouyun
d946ad0948 modify interface of sync.condition 2021-10-23 17:27:08 +08:00
mutouyun
4ddc1d0a3d adjust directory paths 2021-10-23 17:18:23 +08:00
木头云
74e871e6e4
warning: enumeral and non-enumeral type in conditional expression 2021-10-14 22:37:22 +08:00
mutouyun
a457a8975f using 'signal' to quit waiting explicitly 2021-09-21 13:09:59 +08:00
mutouyun
7a536b6e9c impl quit_waiting 2021-09-20 22:18:27 +08:00
mutouyun
b8f5e2ba6f validate close in waiter 2021-09-20 22:03:36 +08:00
mutouyun
ed8b1fd608 fix some bugs for linux-mutex 2021-09-20 20:31:08 +08:00
mutouyun
a9cb81bee9 missing file 2021-09-20 16:05:35 +08:00
mutouyun
04fda1cc3d use sync to refactor waiter 2021-09-20 15:59:44 +08:00
mutouyun
c1ceaa657a 实现condition_win 2021-09-19 22:26:32 +08:00
mutouyun
0cccdac868 merge issue-61; add condition for linux 2021-09-19 17:21:39 +08:00
mutouyun
4ca300b3e5 Merge branch 'issue-61' into develop 2021-09-19 16:29:31 +08:00
mutouyun
be6f16f87f revert some changes 2021-09-19 16:29:06 +08:00
mutouyun
843770442c 避免wait_if的counter因为ABA问题导致计数错误 2021-09-17 22:25:53 +08:00
mutouyun
91385d727a 修正recv中断后counter无法下降的问题;添加新的示例 2021-09-17 22:01:34 +08:00
mutouyun
baf645eea1 修正 recv timeout 接口cpu占用过高的问题 2021-09-16 23:49:01 +08:00
mutouyun
ca9c5d10da ut for sem-linux 2021-09-12 22:05:08 +08:00
mutouyun
1994243bec fix: semaphore() noexcept is implicitly deleted 2021-09-12 21:58:57 +08:00
木头云
cd4b28380c
Update semaphore_linux.h 2021-09-12 21:51:08 +08:00
mutouyun
d37a6740ea add ut for sync::semaphore 2021-09-12 21:48:22 +08:00
mutouyun
d0e2a4d80c add semaphore for win 2021-09-12 15:59:44 +08:00
mutouyun
415be36477 ipc::sync::mutex for linux 2021-09-11 15:52:48 +08:00
mutouyun
1dc0419865 ignore invalid id print in get_ref 2021-08-29 13:58:34 +08:00
木头云
78be14be37
Merge branch 'develop' into master 2021-08-29 11:05:24 +08:00
mutouyun
8bc418ebc7 set_target_properties version 2021-08-15 13:55:11 +08:00
mutouyun
3c7e94a167 modify cmakelists options 2021-08-15 13:23:43 +08:00
mutouyun
c9d92b5364 CP_ACP => CP_UTF8 2021-08-15 12:40:32 +08:00
mutouyun
df8bca22c3 codecvt_utf8_utf16/std::wstring_convert is deprecated 2021-08-07 18:33:45 +08:00
winsoft666
cc7b52ae8f Update INSTALL directory. 2021-07-30 18:37:52 +08:00
winsoft666
df8452206a Set target output directory 2021-07-30 18:28:54 +08:00
winsoft666
43179d6ea0 Add USE_STATIC_CRT option to support static CRT(/MT). 2021-07-30 17:50:02 +08:00
mutouyun
faa2f10e3a target_include_directories 2021-07-12 22:26:58 +08:00
mutouyun
1bb96fe2f1 update chunk_storage_info 2021-07-11 23:01:36 +08:00
mutouyun
d0f965359d recycle storage for large message 2021-07-11 15:56:30 +08:00
mutouyun
57a62bc073 fix some bugs 2021-07-11 13:13:31 +08:00
mutouyun
e3c8f8edc1 adjust test, chunk_storages revert to static 2021-07-11 13:13:31 +08:00
mutouyun
349094561f horrible_cast 2021-07-11 13:13:31 +08:00
mutouyun
628914d428 try to adjust recycling strategy for large message cache 2021-07-11 13:13:30 +08:00
mutouyun
98a3449865 fix some bugs, adjust the test cases 2021-07-11 13:13:30 +08:00
mutouyun
7bedfbfb5b fix: large message cache may not be recycled with multiple receivers 2021-07-11 13:11:24 +08:00
mutouyun
69e1586b5a remove tls 2021-07-10 14:22:31 +08:00
mutouyun
cca4664e84 option(LIBIPC_BUILD_SHARED_LIBS 'Build shared libraries (DLLs).' OFF) 2021-07-10 13:50:46 +08:00
mutouyun
d74f4c5609 fix: mutex() noexcept is implicitly deleted 2021-06-21 00:06:17 +08:00
mutouyun
dd29ed5d1f fix errors 2021-06-21 00:02:48 +08:00
mutouyun
40eafcfd2a fix errors 2021-06-21 00:00:11 +08:00
mutouyun
d974641a07 for vs2015 error C3256 2021-06-20 23:50:39 +08:00
mutouyun
455c0b479d add sync::mutex for windows/linux 2021-06-20 23:50:39 +08:00
mutouyun
12944502a1 Revert "update IPC_CONCEPT_"
This reverts commit 1e5547e6dfd0605fa62be67899c6c893aa61f9fc.
2021-06-20 23:50:39 +08:00
mutouyun
8cd2a40bfd update IPC_CONCEPT_ 2021-06-20 23:50:39 +08:00
mutouyun
f07fc84cb8 add options for cmake 2021-06-05 18:39:31 +08:00
Gang Liang
4f5e150c61 Add install statements for headers and libipc 2021-05-23 10:54:10 -07:00
木头云
a85199d2d4
Update ipc.cpp
fix bug: id == invalid_value not processed.
2021-05-07 16:47:49 +08:00
木头云
9aab0d4f21
Update ipc.cpp
Optimizes the number of handles to the large message cache.
2021-05-07 16:03:33 +08:00
木头云
d6ab58fc6f
add make_align for size alignment 2021-05-07 15:41:32 +08:00
木头云
a4a7b85f47
static_alloc is used by default 2021-05-07 15:35:10 +08:00
mutouyun
a7bec6348b 格式调整 2021-01-10 14:45:17 +08:00
mutouyun
152b5515d2 fix: recv may block after disconnect 2021-01-10 14:29:23 +08:00
mutouyun
8e6ae4220b mmb force_push 出现竞争时,应该在失败后先正常push一次 2021-01-09 21:42:56 +08:00
mutouyun
23d2007c5e 对mmb来说,incr上限65535不够大,调整至16,777,215 2021-01-03 14:03:16 +08:00
mutouyun
f2335bb38b send之前还是应该简单检查连接个数 2021-01-03 13:12:49 +08:00
mutouyun
6163618433 针对不同类型的策略,增加不同的sender/receiver个数检查。
- is_multi_producer:sender无限制;否则仅允许一个
 - is_multi_consumer:receiver个数上限依赖is_broadcast指定;否则仅允许一个
 - is_broadcast:receiver个数上限为32(uint_t<32>位数);否则无限制(uint_t<32>大小)

行为变更:
1. 在连接时根据模式检查sender/receiver是否超出上限,超出则返回false
2. 在send时确认是否允许发送(对receiver模式来说,send之前不会尝试确认sender个数)
3. 修正若干bug
2021-01-03 12:52:03 +08:00
mutouyun
c4617a2290 'elem-array::connect' should always return 0 when the connection-slot is full. 2021-01-01 13:28:25 +08:00
mutouyun
af6ac84110 add comments 2021-01-01 12:39:32 +08:00
mutouyun
10cc2d3360 修正:disconnect不会自动退出wait_for_recv 2020-09-26 19:17:25 +08:00
mutouyun
2255ae685a 调整接口;添加 msg_que demo 2020-09-20 14:55:47 +08:00
mutouyun
85c9eecdfd 避免编译时的命名冲突 2020-09-20 12:37:47 +08:00
mutouyun
7545e17084 简化接口 2020-09-20 12:20:55 +08:00
mutouyun
1323dc736b for linux 2020-09-20 11:57:27 +08:00
mutouyun
e51855f1df 调整代码结构 2020-09-20 11:43:27 +08:00
mutouyun
aaf67858c2 for linux 2020-09-19 18:41:33 +08:00
mutouyun
bce3894707 添加正常退出的机制(win) 2020-09-19 17:37:33 +08:00
mutouyun
523d38d247 调整目录结构,隔离include路径,修正tls在win下的问题 2020-09-13 17:29:14 +08:00
mutouyun
326bc10b2d 优化ut,修正tls中的bug 2020-09-13 15:06:47 +08:00
mutouyun
e8b339d25b 使用 gtest 替换 qtest,测试不再依赖 qt 2020-09-06 21:33:15 +08:00
mutouyun
0aeaa0f1f1 修正: 1. 无接收者时, send 可能返回 true; 2. Windows + MSVC 下分配器的内存异常 2020-08-11 22:54:21 +08:00
mutouyun
19f471b07c [Windows] CreateFileMapping/CreateSemaphore with LPSECURITY_ATTRIBUTES. 2020-07-11 15:29:20 +08:00
zhangyi
5a92ea3031 update elem_def.h 2020-03-30 11:11:01 +08:00
zhangyi
d762634380 add impl of force_push for single-single-unicast; make test_circ works 2020-03-29 14:28:53 +08:00
zhangyi
6850b47e3a push shouldn't return false after force_push has been called 2020-03-28 22:19:37 +08:00
zhangyi
9b2bd3787a update src/prod_cons.h 2020-03-28 15:00:20 +08:00
mutouyun
91cc1b7767 update tls_pointer_win.cpp 2020-03-28 13:55:34 +08:00
zhangyi
bbefef4a37 clock_gettime => gettimeofday 2020-03-18 11:56:56 +08:00
zhangyi
8112a04833 fix compiling error of vs2015 2020-03-17 21:08:08 +08:00
zhangyi
3eeeec88a0 fix bugs of force_push; set PTHREAD_MUTEX_ROBUST to mutex in linux 2020-03-17 20:58:54 +08:00
mutouyun
b9cc885568 adjust constant definition 2020-03-04 13:24:43 +08:00
mutouyun
64c29f079f fine-tune 2019-12-14 15:14:13 +00:00
mutouyun
6d6047f742 fix compilation errors for vs2015 2019-11-17 17:31:40 +08:00
mutouyun
792a9b3339 fix compilation error 2019-10-31 23:34:00 +08:00
zhangyi
4f46e5a95f eliminate error for old compilers 2019-10-24 12:54:26 +08:00
zhangyi
0b88505cb1 warning C4814 2019-10-24 12:32:58 +08:00
zhangyi
dbe6d6d3c6 fix bugs of large message buffer cache & recycle 2019-10-24 12:23:52 +08:00
zhangyi
80452b574b warning C4267 2019-10-23 16:50:18 +08:00
zhangyi
d4bf94c2a3 use big message cache 2019-10-23 16:23:07 +08:00
zhangyi
8da0b32d0b optimize memory management and recycle strategy 2019-10-21 13:32:07 +08:00
mutouyun
d3afbdedc6 revert async_pool_alloc 2019-10-07 12:32:12 +00:00
mutouyun
1fd8e27994 void automatic memory recovery 2019-10-07 12:18:26 +00:00
mutouyun
f3eb6ba55a fix: attempting to reference a deleted function 2019-10-07 11:51:37 +00:00
mutouyun
448a4883f6 optimize the memory allocator 2019-10-07 11:23:31 +00:00
mutouyun
45bf1a7b38 use 'replenish' for async_wrapper 2019-10-05 03:54:17 +00:00
mutouyun
56484c0c8f optimize the memory allocator 2019-10-05 03:48:24 +00:00
mutouyun
659989fd31 fix tls's defect 2019-09-21 14:21:57 +00:00
zhangyi
c8cedf11cf optimize memory allocator for big size memory 2019-07-05 18:53:30 +08:00
木头云
ab1624c0fe
suppress warning C4814 2019-07-04 16:58:02 +08:00
木头云
bd2097e608
Update resource.h 2019-07-04 16:45:34 +08:00
zhangyi
6b7c561496 fix tls bugs (win); modify data structure 2019-07-04 16:37:00 +08:00
mutouyun
9bc6604faa may have memory leak (TBD) 2019-07-03 23:14:43 +08:00
mutouyun
b3ef1ed760 modify chunk size 2019-07-03 14:26:45 +00:00
mutouyun
3d46bcd47a just use default policy for chunk_variable_alloc 2019-07-03 21:56:28 +08:00
zhangyi
449bc36bd9 compile error (msvc) 2019-07-03 18:52:04 +08:00
zhangyi
a4a6a9ca66 fix some bugs; improve memory allocators 2019-07-03 18:41:46 +08:00
mutouyun
fbf3c622e8 fine-tune 2019-07-02 23:07:39 +08:00
zhangyi
d36c3949ce test cases failed 2019-07-02 18:56:01 +08:00
zhangyi
0ef1d27521 use chunk_variable_alloc as allocator-policy of static_async_fixed 2019-07-02 18:48:08 +08:00
zhangyi
56103e08dd add variable_alloc 2019-07-01 19:18:32 +08:00
zhangyi
15e71bd1a1 add IPC_CONSTEXPR_;
add variable_wrapper instead of fixed_alloc_policy
2019-07-01 17:28:02 +08:00
mutouyun
ad01ec62f5 fix compile error for msvc 2019-06-30 12:15:53 +08:00
mutouyun
36d85e4b41 modify test cases of mem;
sync_pool_alloc => async_pool_alloc, synchronized => async_wrapper; statical => static_wrapper;
optimize ipc::mem::allocator;
use std::hardware_destructive_interference_size for cache_line_size (TBD);
simplified codes.
2019-06-30 12:02:12 +08:00
zhangyi
0beb0b4a13 invalid large message storage 2019-06-19 15:30:30 +08:00
zhangyi
cf0028bf09 don't use std::function 2019-06-18 23:42:34 +08:00
zhangyi
a2d918dec2 try using ipc::string 2019-06-18 19:29:58 +08:00
zhangyi
ba5c8f57cf add IPC_FALLTHROUGH_([[fallthrough]]) 2019-06-18 12:26:19 +08:00
zhangyi
30fa347f56 use shm::id_t instead of shm::handle in conn_info_head 2019-06-18 11:53:43 +08:00
mutouyun
7795156656 modify recv_cache from static member function to global function 2019-06-16 17:24:44 +08:00
mutouyun
b3c577988b use storage-flag, simplify codes, use one acc handle for all connections & messages. 2019-06-16 17:10:03 +08:00
mutouyun
a351d2920b modify semaphore::wait (win) 2019-06-08 18:08:03 +08:00
mutouyun
dc3ef4d4b9 add WAIT_ABANDONED 2019-06-08 13:56:02 +08:00
zhangyi
6f5c594dcf clean msg-storage quickly 2019-05-06 17:21:30 +08:00
zhangyi
ce3e9869fb use one shm-block for big message (>= 4096) 2019-05-06 16:19:19 +08:00
zhangyi
518550070d fix bugs in force-push 2019-04-30 15:20:33 +08:00
mutouyun
fe3fc07829 remove useless code 2019-04-07 17:11:00 +08:00
mutouyun
fe689c9208 optimize 2019-04-07 17:01:51 +08:00
mutouyun
8a8c534f53 use ipc::detail::max/min instead of std::max/min 2019-04-05 18:24:16 +08:00
mutouyun
ad9818a89b move concept & pimpl helpers to single header respectively 2019-04-04 23:25:51 +08:00
mutouyun
2079c8eafb rename parameter 2019-04-04 23:15:53 +08:00
zhangyi
ca6815c601 adjust interface for connect 2019-04-01 18:07:15 +08:00
zhangyi
b00ebfe460 memory access may out of bounds 2019-03-29 15:12:15 +08:00
木头云
1c32826aa2
Update shm.cpp 2019-03-28 17:08:32 +08:00
zhangyi
89c4b1ce2a add attach/detach for shm 2019-03-28 16:30:26 +08:00
zhangyi
755bea8112 add attach/detach for shm 2019-03-28 16:23:31 +08:00
zhangyi
2e2cf82d91 add dismiss for shm 2019-03-28 13:04:29 +08:00