144 Commits

Author SHA1 Message Date
mutouyun
0f6d8b3cd7 queue_t::array_t => queue_t::elems_t 2019-01-15 15:08:00 +08:00
mutouyun
b87e96b43c ipc::circ::prod_cons => ipc::prod_cons_circ; ipc::circ::queue => ipc::queue 2019-01-15 14:42:52 +08:00
mutouyun
612a59ae31 ipc::circ::relat => ipc::relat; ipc::circ::trans => ipc::trans 2019-01-14 23:10:27 +08:00
mutouyun
cfd175dbdc fix bugs; simplify codes 2019-01-08 22:37:34 +08:00
mutouyun
60d1a6d00c update file 2019-01-08 18:42:52 +08:00
mutouyun
148344b09b update files 2019-01-08 18:35:58 +08:00
mutouyun
79f6775324 use circ::prod_cons to implement route & channel 2019-01-08 18:02:34 +08:00
mutouyun
164402b21b add prod_cons<relat::multi, relat::multi, trans::broadcast> 2019-01-07 19:10:56 +08:00
mutouyun
0dfbfd3fbf adjust ipc::sleep 2019-01-07 15:25:03 +08:00
mutouyun
224ea72547 use elem_array<ipc::circ::prod_cons> 2019-01-06 22:30:55 +08:00
mutouyun
8e104ded0f add prod_cons<relat::multi, relat::multi, trans::unicast> 2019-01-05 16:09:56 +08:00
mutouyun
ea52920b7d msleep(1) 2019-01-05 14:35:25 +08:00
mutouyun
f388a0a360 fix compiling error; preparing to refactor 2019-01-04 22:11:19 +08:00
mutouyun
17621c1e83 preparing to refactor 2019-01-04 18:48:21 +08:00
mutouyun
eae565dfc8 adjust code 2019-01-02 12:37:18 +08:00
mutouyun
2e26176234 update performence data; add implementation of pool_alloc::clear 2019-01-02 11:58:55 +08:00
mutouyun
e1c3594ca5 using ipc::buffer instead of std::vector<byte_t> 2018-12-31 22:22:54 +08:00
mutouyun
2b0f39e96e test detail::pool_alloc 2018-12-30 20:45:32 +08:00
mutouyun
cba780e9dc make pool_alloc public 2018-12-30 20:34:00 +08:00
mutouyun
319bcdab2f add test for pool_alloc 2018-12-30 16:28:14 +08:00
mutouyun
812d4b3be5 optimize channel performance 2018-12-29 12:12:27 +08:00
mutouyun
02a5920697 try pool_alloc (TBD) 2018-12-29 00:51:31 +08:00
mutouyun
dc5cb05cbd eliminate warnings 2018-12-28 16:07:16 +08:00
mutouyun
c3f7abf2e1 update benchmark data 2018-12-28 15:59:13 +08:00
mutouyun
64fc26733e use tls::pointer instead of thread_local 2018-12-28 14:53:34 +08:00
mutouyun
4253c1341c fix some bugs; add performance data to README.md 2018-12-27 20:06:36 +08:00
mutouyun
0ea8e27446 still has some bugs 2018-12-26 18:22:34 +08:00
mutouyun
492d095332 noexcept; adjust memory order 2018-12-24 13:29:20 +08:00
mutouyun
b815a5e50f channel::send will wait for a while & return false if there is no receiver 2018-12-24 12:11:50 +08:00
mutouyun
0eb61b8745 adjust file naming; supplement test cases 2018-12-24 11:56:42 +08:00
mutouyun
e54e9898fc complete all functions of ipc::channel (TODO: ut, benchmark) 2018-12-20 16:31:38 +08:00
mutouyun
70e1ac6865 linux shm should clear itself when all handles pointed it are released 2018-12-20 11:38:40 +08:00
mutouyun
69449c0d4f fix clang-test crash 2018-12-19 11:37:31 +08:00
mutouyun
69bc556a52 redesigning & refactoring (TBD) 2018-12-18 20:09:31 +08:00
mutouyun
2e05a0260d remove test_performance... 2018-12-17 23:15:43 +08:00
mutouyun
c80fbb32ea remove test_prod_cons<1, 8>() 2018-12-17 22:58:01 +08:00
mutouyun
99beccd157 error: ‘unordered_map’ in namespace ‘std’ does not name a template type 2018-12-17 22:48:59 +08:00
mutouyun
cc19a4e941 eliminate warning 2018-12-17 22:45:32 +08:00
mutouyun
09c3c557ba fix some bugs; use thread_local 2018-12-17 22:44:37 +08:00
mutouyun
cca70b018c improve test cases (has bugs) 2018-12-17 19:07:18 +08:00
mutouyun
0b3a561c53 test_channel may fail unexpectedly 2018-12-17 14:17:43 +08:00
mutouyun
09ec67182a fix QCOMPARE link error 2018-12-17 13:58:29 +08:00
mutouyun
a5580b915e define QVERIFY_EXCEPTION_THROWN if it's not exist 2018-12-17 13:44:48 +08:00
mutouyun
3b5878902a modify test case 2018-12-17 12:23:35 +08:00
mutouyun
d61aa5e5df fix bugs; modify test case; add some helper using & functions 2018-12-17 11:49:13 +08:00
mutouyun
59a9df60c4 add test case 2018-12-17 00:00:13 +08:00
mutouyun
885abd0c21 adjust code 2018-12-16 23:22:57 +08:00
mutouyun
f09378b481 fix some bugs; if __has_include(<pthread.h>), using tls_pointer_linux.cpp; add some channel::send overloads 2018-12-16 21:30:55 +08:00
mutouyun
d6afba1d7a add channel ut 2018-12-15 22:51:40 +08:00
mutouyun
1e44d6f84e pimpl small object optimization 2018-12-14 18:50:20 +08:00
mutouyun
238f769f7a adjust test case 2018-12-14 10:34:45 +08:00
mutouyun
17e923e67a remove benchmark of ipc::rw_cas_lock 2018-12-14 09:47:08 +08:00
mutouyun
c47175360c fix bug, remove rw_cas_lock 2018-12-14 00:00:45 +08:00
mutouyun
96c2a037f3 considering a different implementation, may have bugs 2018-12-13 18:37:06 +08:00
mutouyun
b6248ad5dc use ipc::yield instead of this_thread::yield 2018-12-13 11:00:21 +08:00
mutouyun
5ffc820983 use rw_lock for ipc with multi-thread 2018-12-12 23:31:22 +08:00
mutouyun
c40dddcc06 fix bugs; optimize performance 2018-12-12 18:49:10 +08:00
mutouyun
29d25e2226 add benchmark for lock-test 2018-12-12 17:48:02 +08:00
mutouyun
bc25cd6912 change interface name for rw_lock 2018-12-12 16:14:04 +08:00
mutouyun
35a8f95619 test rw_lock 2018-12-12 00:03:42 +08:00
mutouyun
9c9ca8f5c4 (void) => () 2018-12-11 22:28:29 +08:00
mutouyun
1b047bd975 fix compiling errors 2018-12-11 20:52:15 +08:00
mutouyun
f3a73fcc4d remove std::string from export interface 2018-12-11 17:34:54 +08:00
mutouyun
d5b5b3e0f4 def ipc::uint<N>; optimize code 2018-12-11 16:58:51 +08:00
mutouyun
85bb05bb52 complete ipc send & recv; prepare ipc::channel; add ipc ut (basic test); add ut suit name; 2018-11-30 17:32:09 +08:00
zhangyi
c8e81e2794 use std::atomic<std::size_t> instead of flag for better performance in arm; cross-platform supporting; add more test cases 2018-11-30 15:13:44 +08:00
mutouyun
b3e2c80fc0 use spin lock for multi-producers 2018-11-30 11:38:50 +08:00
mutouyun
b3ad167970 fix wrong word 2018-11-29 00:20:15 +08:00
mutouyun
7d91b187fe fix bugs of circ_queue 2018-11-29 00:14:37 +08:00
zhangyi
c9ce4b466a add circ_queue test (TBD) 2018-11-28 11:53:10 +08:00
mutouyun
2905b55fcf ipc::circ::queue & test_queue 2018-11-27 22:16:03 +08:00
mutouyun
fa2c8200bf prepare for circ_queue 2018-11-27 20:57:34 +08:00
mutouyun
2f175b9da9 adjust 2018-11-27 20:45:28 +08:00
zhangyi
f0cbfbff7c add more cases for performance testing 2018-11-27 12:24:56 +08:00
zhangyi
1cf277e9e1 optimize test performance 2018-11-27 11:54:43 +08:00
zhangyi
c7f49fad5a cross-platform 2018-11-27 11:41:08 +08:00
mutouyun
eefea828f0 not support N:M (prod-cons) 2018-11-27 10:47:23 +08:00
mutouyun
453f93a69e using yield when checks read finished failed; fix bugs 2018-11-26 16:53:41 +08:00
mutouyun
b3b0cc59f8 fix bugs 2018-11-26 15:00:17 +08:00
mutouyun
0222af2221 add test_prod_cons function template; fix some bugs for multi-producers 2018-11-26 11:56:59 +08:00
mutouyun
7e24273a64 adjust count of consumers 2018-11-23 22:10:50 +08:00
mutouyun
ff0dbc8e2e add comments 2018-11-23 21:58:49 +08:00
mutouyun
3e7c97d9b6 rename: circ_queue.h => circ_elem_array.h; support N:M (TBD) 2018-11-23 18:35:13 +08:00
mutouyun
2f206d677e modify get to take; fix bug 2018-11-22 21:06:15 +08:00
mutouyun
aef0ed035d use cas instead of load & store; modify "commit" to "put" 2018-11-22 15:51:17 +08:00
mutouyun
4e67eebb4f turn count of consumers to 3 2018-11-22 14:11:00 +08:00
mutouyun
526f63943f optimize test performance 2018-11-22 14:08:44 +08:00
mutouyun
daae701cec fix bugs 2018-11-22 14:05:39 +08:00
mutouyun
a6ab7bcdac fix some bugs 2018-11-21 23:10:12 +08:00
mutouyun
7718a63b24 print spent time & performance 2018-11-21 21:38:29 +08:00
mutouyun
de39be3c4f fix bugs 2018-11-21 19:03:39 +08:00
mutouyun
19b40e23cb add ut for circ_queue 2018-11-21 15:09:11 +08:00
mutouyun
17375bb32c add circ_queue 2018-11-20 23:04:32 +08:00
mutouyun
050bb02198 first commit for shm. 2018-11-20 11:27:39 +08:00