223 Commits

Author SHA1 Message Date
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
mutouyun
5784b29521 update tls 2019-04-01 23:00:00 +08:00
zhangyi
ca6815c601 adjust interface for connect 2019-04-01 18:07:15 +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
mutouyun
557a849bdf update shm interfaces 2019-03-28 12:08:02 +08:00
mutouyun
10e6cca8b0 support for specified shm modes 2019-03-27 22:55:36 +08:00
zhangyi
a35b43163c support removing waiter-objects forcibly 2019-03-27 16:58:46 +08:00
mutouyun
6cc2913f6b crash may cause deadlock 2019-03-26 22:24:25 +08:00
zhangyi
5affd26da6 try send/recv; support sending timeout; fix bugs 2019-03-26 19:12:59 +08:00
zhangyi
785abd1845 support timeout 2019-03-26 14:08:08 +08:00
mutouyun
d223e3abb8 fix bugs; modify shm interfaces 2019-03-25 16:25:14 +08:00
mutouyun
280cc81fa2 remove useless codes 2019-03-22 22:16:53 +08:00
mutouyun
b65be99045 update 2019-03-20 23:42:18 +08:00
mutouyun
478cb62c35 impl ipc objects (mutex, condition, semaphore) 2019-02-14 15:56:01 +08:00
mutouyun
52302cc007 add wait-if for waiter 2019-02-12 13:22:49 +08:00
mutouyun
e86d3e10e1 modify producer-consumer policy flag 2019-01-26 11:20:04 +08:00
mutouyun
c3f66d47bb prepare multi routes implementation 2019-01-25 18:28:39 +08:00
mutouyun
efe7353e55 adjust default data_length 2019-01-25 16:35:41 +08:00
mutouyun
99926581d1 add error log (TBD); use pthread api for waiter 2019-01-25 11:59:53 +08:00
mutouyun
3713d46f3e remove clear_recv 2019-01-24 21:51:22 +08:00
mutouyun
5c9a8e0311 remove is_fixed (TBD) 2019-01-24 17:55:23 +08:00
mutouyun
12119f0f65 refactor 2019-01-24 12:13:13 +08:00
mutouyun
799e5db963 compile error 2019-01-23 12:03:59 +08:00
mutouyun
f104bc4397 compile error 2019-01-23 11:52:56 +08:00
mutouyun
881b060d1f refactor 2019-01-23 11:44:26 +08:00
mutouyun
4d2b47cbb7 prepare for multi-thread fixed-alloc 2019-01-20 22:22:47 +08:00
mutouyun
27d6b0c7f5 define spin_lock 2019-01-20 21:04:16 +08:00
mutouyun
a7d9a3d476 adjust tls 2019-01-20 20:31:55 +08:00
mutouyun
b52eae7c90 IPC_UNUSED_ 2019-01-18 17:27:41 +08:00
mutouyun
44a9a4b98f try compatible with old compilers 2019-01-18 14:43:58 +08:00
mutouyun
e5a5b9f680 compatible with old compilers 2019-01-18 12:47:41 +08:00
mutouyun
7b5ab36fc1 prepare new policies for queue 2019-01-17 17:47:43 +08:00
mutouyun
be15b2377f fine-tune code 2019-01-17 17:34:33 +08:00
mutouyun
6a3c3cde23 fine-tune code 2019-01-17 15:50:56 +08:00
mutouyun
c69b351ae9 fine-tune code 2019-01-17 10:15:48 +08:00
mutouyun
d25f070627 use waiter for wait_for_recv 2019-01-16 18:06:21 +08:00
mutouyun
d9e24236af add waiter for long-time wait. (TBD) 2019-01-15 21:22:09 +08:00
mutouyun
8af8f99df3 add elem_link.h 2019-01-15 15:40:13 +08:00
mutouyun
e3f963d2b4 circ_elem.h => elem_circ.h; organ => orgnz; elem_head => conn_head 2019-01-15 15:27:06 +08:00
mutouyun
b62d5a3946 circ_elem_array => circ_elem 2019-01-15 15:14:46 +08:00
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
148344b09b update files 2019-01-08 18:35:58 +08:00
mutouyun
efc0500047 remove multi_recv 2019-01-08 18:19:18 +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
7813e20a5b adjust ipc::sleep 2019-01-07 15:26:51 +08:00
mutouyun
0dfbfd3fbf adjust ipc::sleep 2019-01-07 15:25:03 +08:00
mutouyun
45e4429056 adjust param 2019-01-06 23:37:58 +08:00
mutouyun
27eb5ee99b use ipc::yield 2019-01-06 23:20:19 +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
90c60ddd58 std::atomic<T> may not have value_type 2019-01-04 22:26:40 +08:00
mutouyun
98c367a380 fix compiling error 2019-01-04 22:16:48 +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
d67a2076ed remove channel::send_for 2019-01-02 16:37:41 +08:00
mutouyun
e1c3594ca5 using ipc::buffer instead of std::vector<byte_t> 2018-12-31 22:22:54 +08:00
mutouyun
3bea8af992 eliminate potential problems 2018-12-30 21:17:25 +08:00
mutouyun
cba780e9dc make pool_alloc public 2018-12-30 20:34:00 +08:00
mutouyun
2941007301 use pool_alloc instead of std::allocator 2018-12-29 22:42:26 +08:00
mutouyun
02a5920697 try pool_alloc (TBD) 2018-12-29 00:51:31 +08:00
mutouyun
0ea8e27446 still has some bugs 2018-12-26 18:22:34 +08:00
mutouyun
6a2c7671db adjust memory order 2018-12-24 14:22:02 +08:00
mutouyun
a4079ab7af compiling error 2018-12-24 13:34:42 +08:00
mutouyun
492d095332 noexcept; adjust memory order 2018-12-24 13:29:20 +08:00
mutouyun
f962dc4cb5 adjust comment 2018-12-20 17:19:08 +08:00
mutouyun
b5ae2746a2 not throw but waiting when size == 0 2018-12-20 17:14:27 +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
238166bdc1 compile errors 2018-12-19 16:49:30 +08:00
mutouyun
d0b4999af4 re-add ipc::channel (TBD); use hpp instead of cpp to implement channel/route, cause it could visit the internal entities which in ipc.cpp 2018-12-19 16:37:26 +08:00
mutouyun
9cbfb8624f separate def of route into a single cpp (test) 2018-12-19 12:18:53 +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
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
d61aa5e5df fix bugs; modify test case; add some helper using & functions 2018-12-17 11:49:13 +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
8bc8feb68f add IPC_EXPORT for tls 2018-12-16 11:53:56 +08:00
mutouyun
d6afba1d7a add channel ut 2018-12-15 22:51:40 +08:00
mutouyun
44ab812925 rename thread_local_ptr => tls::pointer 2018-12-15 19:30:22 +08:00
mutouyun
0285e2d6e1 mv thread_local_ptr.h to include 2018-12-15 11:57:02 +08:00
mutouyun
0c6a3862d0 use thread_local_ptr instead of thread_local 2018-12-14 23:57:31 +08:00
mutouyun
1e44d6f84e pimpl small object optimization 2018-12-14 18:50:20 +08:00
mutouyun
69cfad56c3 mv ipc::yield from def.h to rw_lock.h 2018-12-14 11:29:17 +08:00
mutouyun
7b812c3c6e optimize lock_shared 2018-12-14 11:21:46 +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
a26f171124 max defined in <windows.h> 2018-12-13 15:40:19 +08:00
mutouyun
7a7426a8b8 poor performance on arm-a7 2018-12-13 11:50:26 +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
eccded45c2 add thread_fence 2018-12-12 09:54:08 +08:00
mutouyun
35a8f95619 test rw_lock 2018-12-12 00:03:42 +08:00
mutouyun
449cf75da9 put rw_lock to a single header file 2018-12-11 20:56:13 +08:00
mutouyun
1b047bd975 fix compiling errors 2018-12-11 20:52:15 +08:00
mutouyun
0a17257388 rw_lock (TBD) 2018-12-11 18:46:04 +08:00
mutouyun
f3a73fcc4d remove std::string from export interface 2018-12-11 17:34:54 +08:00
mutouyun
a3c90d9f8b use nested class in pimpl 2018-12-11 17:08:13 +08:00
mutouyun
d5b5b3e0f4 def ipc::uint<N>; optimize code 2018-12-11 16:58:51 +08:00
mutouyun
caabc24b71 adjust elem_t construction 2018-11-30 22:16:44 +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
9540842ba7 add ipc.cpp for implementation of ipc interfaces (TBD); restructure code 2018-11-29 23:05:53 +08:00
mutouyun
518fc000e7 add ipc.h 2018-11-29 18:33:58 +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
21789676e7 move circ_elem_array.h to include dir 2018-11-27 20:50:40 +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