Commit Graph

1115 Commits

Author SHA1 Message Date
zhengshuxin
8d371b0a17 Use ETIME other ETIMEDOUT on Unix-like OS. 2023-03-29 22:57:44 +08:00
zhengshuxin
66551ff234 build ok by cmake 2023-03-27 20:48:27 +08:00
shuxin   zheng
2486695cc0 Fixed one bug in fiber_mutex module where some resouce collision maybe happen. 2023-03-22 14:56:05 +08:00
zhengshuxin
60ef870ff5 build on macos 2023-03-19 23:01:02 +08:00
zhengshuxin
afeb562f8a MacOS doesn't support CLOCK_REALTIME_COARSE, we should use CLOCK_REALTIME. 2023-03-19 22:56:13 +08:00
zhengshuxin
43dde62075 Optimeize peformance by using clock_gettime to replace gettimeofday 2023-03-19 21:21:11 +08:00
zhengshuxin
389158b1a3 Optimize fiber's performance by decreasing the count of calling gettimeofday. 2023-03-18 19:19:57 +08:00
zhengshuxin
7ec8c3aa44 build acl on centos5.8, 6.6 2023-03-08 14:15:27 +08:00
zhengshuxin
489937e444 Optimize Makefile. 2023-02-14 16:36:24 +08:00
zhengshuxin
aed84b645f Modify readme 2023-02-11 00:14:52 +08:00
zhengshuxin
63b5f80298 Add some debug functions. 2023-02-05 10:25:54 +08:00
zhengshuxin
3ff6cf80fb c++ headers dependence 2023-02-04 21:00:37 +08:00
zhengshuxin
6edfd3c74d headers sequence 2023-02-04 20:49:54 +08:00
zhengshuxin
0c1a9d9484 test demo 2023-01-28 15:46:32 +08:00
zhengshuxin
846358ee6f Modify fiber's readme 2023-01-26 16:15:11 +08:00
zhengshuxin
8224e8888a Add default event type in acl::fiber::schedule() 2023-01-26 16:03:16 +08:00
zhengshuxin
488ea4d473 modify readme 2023-01-25 22:05:58 +08:00
zhengshuxin
937f4c0739 Modify readme of libfiber 2023-01-25 21:31:34 +08:00
zhengshuxin
8d719cbe30 Add fiber_mutex_guard class for easily using fiber_mutex. 2023-01-17 17:39:57 +08:00
zhengshuxin
70e825f513 Rename id() to fiber_id() in fiber.hpp 2023-01-17 17:18:56 +08:00
shuxin   zheng
fbe061245c test aio_server in fiber mode 2023-01-16 17:04:30 +08:00
zhengshuxin
37a5f3bcd0 Test fcntl for hooking API 2023-01-16 16:26:31 +08:00
zhengshuxin
bdb35bc6e9 Optimize hook API of fcntl. 2023-01-16 16:22:38 +08:00
zhengshuxin
780318a3df Hook fcntl on Linux. 2023-01-16 15:46:43 +08:00
zhengshuxin
5927fddb41 Add demo test the performance ACL_FIBER_LOCK vs ACL_FIBER_MUTEX 2023-01-12 22:30:24 +08:00
zhengshuxin
f36257685e Test . 2023-01-12 17:50:40 +08:00
zhengshuxin
884c1457b2 Set fiber's status before it's suspended. 2023-01-12 17:49:24 +08:00
zhengshuxin
ea3770320a Add the global object to hold all ACL_FIBER_COND objects. 2023-01-12 17:48:29 +08:00
zhengshuxin
fd9806b2a6 Add conditional compiling with DEBUG_STACK 2023-01-11 23:02:39 +08:00
郑树新
cf25672923 Build ok on windows. 2023-01-11 22:51:39 +08:00
zhengshuxin
1ec47b99b0 Just compiling. 2023-01-11 22:47:18 +08:00
zhengshuxin
6305f57e48 test 2023-01-11 22:42:03 +08:00
zhengshuxin
b10fd0acad Build ok on MacOS 2023-01-11 22:40:12 +08:00
zhengshuxin
3ef3fa8128 Add C++ API for fiber mutex deadlock checking. 2023-01-11 22:29:45 +08:00
zhengshuxin
758dd3852a Add stacktrace for fiber cpp lib. 2023-01-11 10:22:33 +08:00
zhengshuxin
0864514ae4 Build demos on MacOS 2023-01-11 00:29:44 +08:00
zhengshuxin
fb02991e32 Use SNPRINTF macro for multiple platforms. 2023-01-11 00:24:44 +08:00
zhengshuxin
e4b0b89bf4 The deadlock function is ok. 2023-01-11 00:19:09 +08:00
zhengshuxin
e5c61d1130 Add deadlock checking for ACL_FIBER_MUTEX 2023-01-10 18:00:34 +08:00
zhengshuxin
6be344c73c FIBER_F_STARTED flags should be set for origin fiber. 2023-01-04 17:58:56 +08:00
郑树新
5a4294cef4 build ok on windows 2023-01-03 22:30:32 +08:00
shuxin   zheng
408c6e0db0 acl_fiber_stacktrace() can't be used on MacOS because libunwind don't support MacOS. 2023-01-03 15:47:19 +08:00
zhengshuxin
0732c5dd06 We can get any fibers' stack now. 2023-01-03 15:33:41 +08:00
zhengshuxin
891ef11c5a Remove some useless items in ACL_FIBER to decrease the memory size of ACL_FIBER. 2023-01-03 14:42:31 +08:00
zhengshuxin
127c23da34 Optimize fiber sturcture and add fiber stack's backtrace for debuging. 2023-01-03 00:04:43 +08:00
shuxin   zheng
cab643b862 Build ok by cmake. 2022-12-30 09:50:42 +08:00
zhengshuxin
e28c539c28 Don't test eventfd on MacOS 2022-12-29 22:21:50 +08:00
zhengshuxin
9da39ede8a test eventfd in unit_test of fiber module 2022-12-29 22:20:06 +08:00
zhengshuxin
7dab9ca16a add eventfd test in unit_test of fiber module. 2022-12-29 22:11:51 +08:00
zhengshuxin
8ab868259d add file read test in unit_test of fiber 2022-12-29 21:51:06 +08:00
shuxin   zheng
dd5171df8c fixed one bug in MacOS for checking one fd can be monitored by event 2022-12-29 18:48:58 +08:00
zhengshuxin
799620696c add test cases in unit_test for fiber module 2022-12-29 17:28:06 +08:00
zhengshuxin
c674ebeac2 Adding unit testing framework for fiber module. 2022-12-28 17:04:41 +08:00
zhengshuxin
4e73f4be3a fiber_cond using the global timer to waiting timer arriving. 2022-12-28 12:40:18 +08:00
zhengshuxin
eae6be59ed Optimize sync_timer.c by using the global timer. 2022-12-28 00:01:44 +08:00
zhengshuxin
d2ac79798a Optimize fiber's timer module for performance improvement by using AVL tree. 2022-12-27 16:20:47 +08:00
zhengshuxin
7eed42a74a fixed one bug in sync_timer.c for waiting with timeout 2022-12-26 18:49:24 +08:00
zhengshuxin
0a06559547 just optimize codes 2022-12-25 16:54:14 +08:00
zhengshuxin
79ee418c14 test fiber_cond 2022-12-25 16:20:13 +08:00
zhengshuxin
6667c02ca9 optimize sync_waiter.c when the waiter fiber and the wakeup fiber are in the same thread. 2022-12-25 16:19:05 +08:00
zhengshuxin
199bae6894 add checking before call sync_timer_await 2022-12-25 16:18:41 +08:00
zhengshuxin
078601357a fixed one bug that the function pointer of IO api maybe not been set 2022-12-25 16:16:39 +08:00
zhengshuxin
da9959c4db Don't add reference for FILE_EVENT in poll.c 2022-12-22 16:23:39 +08:00
zhengshuxin
078e0b23fd The current running fiber should be set in poll.c 2022-12-20 16:15:46 +08:00
zhengshuxin
7a8694e367 Fixed one bug in poll.c for closing another fiber's fd 2022-12-20 15:34:47 +08:00
zhengshuxin
afaf06e041 add another more efficient sendfile's implement than by using splice. 2022-12-12 02:36:11 +08:00
zhengshuxin
fbbf99ea0d delete usless MACRO define 2022-12-12 01:00:43 +08:00
zhengshuxin
8901830536 test fiber_stop demo 2022-12-19 15:00:03 +08:00
zhengshuxin
cf53a8add4 add one demo. 2022-12-11 21:31:18 +08:00
郑树新
75526ace1a build ok on windows 2022-12-17 19:20:20 +08:00
zhengshuxin
b4ef412762 add one demo for test waiting fiber with fiber_tbox 2022-12-16 21:57:41 +08:00
zhengshuxin
a77777c6f9 add dead lock test 2022-12-16 20:29:03 +08:00
zhengshuxin
92d5fdc284 release 3.6.0-2 for compatibility for calling gettid() on Linux. 2022-12-16 14:53:04 +08:00
zhengshuxin
ffe5b13c9e compiling ok on ubuntu 2022-12-16 13:48:37 +08:00
shuxin   zheng
4706251ffa build ok on macos 2022-12-16 13:44:49 +08:00
zhengshuxin
050276c8fe fixed one occasionally bugs in fiber_mutex that the waiter can't be wakeuped. 2022-12-16 12:42:47 +08:00
zhengshuxin
5b6d473d7b test demo 2022-12-16 12:00:57 +08:00
zhengshuxin
61f9c60c8a format code style 2022-12-16 10:39:18 +08:00
zhengshuxin
22c65aba40 macro define should enclosed in brackets 2022-12-16 10:38:48 +08:00
zhengshuxin
a20e6ee97a adding fiber dead lock ... 2022-12-13 17:45:21 +08:00
zhengshuxin
0440437f5c adding fiber mutex dead lock ... 2022-12-10 17:11:29 +08:00
zhengshuxin
41d6e8b53b add some comments 2022-12-09 18:33:57 +08:00
zhengshuxin
a5ea885bb1 test fiber_tbox 2022-12-09 18:32:29 +08:00
zhengshuxin
bc029e4dd8 The eventfd can't use socket IO API which can only use read/write API. 2022-12-09 18:31:41 +08:00
zhengshuxin
773ddad8c6 optimize fiber_read.c/fiber_write.c by using C macro 2022-12-09 18:27:57 +08:00
zhengshuxin
bbcb2484f8 just compiling for linux 2022-12-08 17:23:56 +08:00
shuxin   zheng
65221aab45 add new files into the vs projects in fiber module 2022-12-08 17:18:51 +08:00
shuxin   zheng
7b0b7c73bb move some internal IO functions into one file io.h 2022-12-08 17:12:13 +08:00
zhengshuxin
16db7043e4 optimize for one FILE_EVENT can be used by more fibers simultaneously. 2022-12-08 16:47:28 +08:00
zhengshuxin
dec66530a2 fixed one bug that lseek can't distinguish eventfd and file fd, so we use another method to do it. 2022-12-08 16:31:02 +08:00
zhengshuxin
970c19e531 test ... 2022-12-08 14:27:01 +08:00
zhengshuxin
901c42b804 optimizing fiber module ... 2022-12-07 21:38:46 +08:00
zhengshuxin
2d66b48b75 add one demo to test multiple threads and fibers writing log with the same fd 2022-12-06 21:57:19 +08:00
zhengshuxin
7ef9870487 delete unused file 2022-12-06 16:53:14 +08:00
zhengshuxin
0a4ecd5d94 rename file_read.c/file_write.c to fiber_read.c/fiber_writer.c 2022-12-06 15:34:27 +08:00
zhengshuxin
2b2f6dd57f move IO read/write to the file_read.c/file_write.c 2022-12-05 18:40:22 +08:00
zhengshuxin
0b559431ea add conditional compiling for statx, renameat in fiber module 2022-12-03 20:06:02 +08:00
zhengshuxin
3f557c576a prepare for the new version 3.6.0 2022-12-01 20:22:33 +08:00
zhengshuxin
69fcff4150 test demo 2022-12-01 19:42:48 +08:00
zhengshuxin
b81c1f9db0 init res value 2022-11-30 13:48:10 +08:00
zhengshuxin
db0b4971f0 The res value be set to acl_fiber_set_error in file_close() wasn't inited yet. 2022-11-30 13:45:31 +08:00
zhengshuxin
d0f1050531 optimize and test io_uring for closing and canceling IO processes. 2022-11-30 13:06:31 +08:00
zhengshuxin
77b5c570e3 delete unused codes 2022-11-29 11:46:14 +08:00
zhengshuxin
4250115464 add more comments and add more safety codes for close fd in no-fiber mode. 2022-11-28 23:32:26 +08:00
zhengshuxin
753bff583b test 2022-11-24 20:27:01 +08:00
zhengshuxin
ca5ca77dff remove debug info 2022-11-24 20:24:06 +08:00
zhengshuxin
7330aa00bb test fiber 2022-11-24 20:05:46 +08:00
zhengshuxin
4a00da4e38 fixed bugs in io.c of fiber module when calling write api in no-coroutine mode. 2022-11-24 06:55:38 +08:00
zhengshuxin
8e8db764fd fixed one bug there's a dead-locking when fiber_cond waits timedout 2022-11-23 13:20:02 +08:00
zhengshuxin
2bca98c50e add new files into vs's projects 2022-11-21 23:14:35 +08:00
zhengshuxin
ea42500c68 optimize and test redis client pipeline mode with the new fiber_tbox with less eventfd. 2022-11-21 22:58:52 +08:00
zhengshuxin
638b966ec6 add header 2022-11-21 20:44:59 +08:00
zhengshuxin
ba76a210b8 build ok by xcode 2022-11-21 20:43:45 +08:00
zhengshuxin
8353981a96 optimize all box classes and redis_client_pipeline can create box by virtual create function. 2022-11-21 20:27:09 +08:00
zhengshuxin
da61f288ae optimize and test fiber_cond 2022-11-21 11:51:31 +08:00
zhengshuxin
96b6a74fbe optimize and test fiber_cond 2022-11-21 00:16:49 +08:00
zhengshuxin
24a553e66b optimize fiber_mutex, fiber_cond 2022-11-20 22:30:15 +08:00
郑树新
150c7a21b9 test fiber in UI on windows 2022-11-20 12:41:09 +08:00
郑树新
96dda1a925 compile on windows 2022-11-19 22:12:08 +08:00
zhengshuxin
fec4daee79 fixed bugs when open_limit return -1, we should use one default value for event_select.c and event_poll.c in fiber. 2022-11-19 21:20:41 +08:00
zhengshuxin
9cac39c265 optimize and test fiber_cond, fiber_mutex on io_uring 2022-11-19 19:15:28 +08:00
zhengshuxin
90b054a176 build ok on macos for fiber module 2022-11-18 21:51:46 +08:00
zhengshuxin
1f2f79c192 optimize fiber_mutex by using context switch when the owner and waiter are in the same thread 2022-11-18 16:47:10 +08:00
郑树新
f5d6b15f33 test iocp of fiber on windows 2022-11-17 22:00:22 +08:00
shuxin   zheng
468cb5fa8a add lost files for xcode project 2022-11-17 18:24:09 +08:00
郑树新
c2537bf2f7 test ... 2022-11-17 18:11:33 +08:00
郑树新
51b7ea8ebb test fiber module on windows platform 2022-11-17 15:16:53 +08:00
shuxin   zheng
e67b30c94b add lost files for xcode 2022-11-17 15:15:24 +08:00
郑树新
5ef61a9f15 delete unused branch 2022-11-17 14:28:31 +08:00
shuxin   zheng
626dbd4669 add lost files in xcode 2022-11-17 14:18:33 +08:00
shuxin   zheng
fca99933f0 build ok by xcode 2022-11-17 12:10:33 +08:00
shuxin   zheng
a4ea9e8129 optimize and test fiber_mutex, fiber_cond on macos 2022-11-17 11:24:56 +08:00
zhengshuxin
ce0a0c6468 testing ... 2022-11-16 23:18:22 +08:00
shuxin   zheng
ed6e04e63b decrease the size of ACL_FIBER 2022-11-16 18:13:08 +08:00
zhengshuxin
365a62a96d test fiber_cond 2022-11-16 15:50:24 +08:00
zhengshuxin
eb9739942e optimize and test fiber_mutex, fiber_cond 2022-11-16 15:41:33 +08:00
zhengshuxin
222f62e83a format code 2022-11-13 13:56:26 -05:00
zhengshuxin
8d09efed12 optimize fiber_cond 2022-11-13 13:56:05 -05:00
zhengshuxin
27f8fa6fb6 optimize and test fiber_cond 2022-11-13 13:52:41 -05:00
zhengshuxin
d0cf77f92c test fiber_cond 2022-11-13 12:39:51 -05:00
zhengshuxin
19f19ad7c0 optimize fiber_cond 2022-11-13 12:38:46 -05:00
zhengshuxin
652008e29a optimize and test fiber_mutex, fiber_cond 2022-11-13 12:00:09 -05:00
zhengshuxin
14f0900b73 optimize ... 2022-11-14 05:43:55 -05:00
zhengshuxin
eadd92e9e3 optimize mdule of fiber 2022-11-14 04:55:09 -05:00
zhengshuxin
84ab52a4a5 optimize and test fiber_cond 2022-11-14 04:39:28 -05:00
zhengshuxin
0ad17e5048 test fiber_cond ... 2022-11-14 02:56:57 -05:00
zhengshuxin
f84cfa370d change the cpp of fiber according the c's changing. 2022-11-13 10:37:41 -05:00
zhengshuxin
948716dd57 optimize fiber_cond and fiber_mutex 2022-11-13 10:11:36 -05:00
zhengshuxin
65a84a6ede adding new fiber_cond ... 2022-11-13 03:31:02 -05:00
zhengshuxin
8863f9ef93 optimize fiber_mutex 2022-11-13 00:06:48 -05:00
zhengshuxin
1d83f7c6cf optimize fiber_mutex 2022-11-12 21:54:50 -05:00
zhengshuxin
bbafef19ad optimize and test fiber_mutex.c 2022-11-12 21:15:51 -05:00
zhengshuxin
821d06d573 test fiber_mutex 2022-11-11 09:53:23 -05:00
zhengshuxin
d4981e0a9a test ... 2022-11-10 10:12:10 -05:00
zhengshuxin
3d8a6a7879 optimize and test fiber_mutex ... 2022-11-09 09:09:00 -05:00
zhengshuxin
fb91f6ffd2 add lost files 2022-11-08 08:56:22 +08:00
zhengshuxin
ddaeb6ed99 add fiber_mutex test 2022-11-08 08:52:39 +08:00
zhengshuxin
4d81f0fe5f adding fiber_mutex ... 2022-11-07 18:28:28 +08:00
zhengshuxin
7344b417a4 adding fiber mutex ... 2022-11-06 09:21:53 -05:00
zhengshuxin
883f4d0e2d there is some error in fiber_event.c to be fixed in io_uring mode, the fiber_event.c maybe to rewrite ... 2022-11-03 06:45:53 -04:00
zhengshuxin
fa5d46f3b3 test 2022-11-02 10:28:00 -04:00
zhengshuxin
49b617f2e3 use different context for read/write operations in io_uring module 2022-11-02 06:57:18 -04:00
zhengshuxin
aef12af92e test file copy with io_uring 2022-10-31 05:51:34 -04:00
zhengshuxin
b78e958dea test splice, pread, pwrite in multiple coroutines in multiple threads 2022-10-31 04:54:43 -04:00
郑树新
733e83c5b6 test fiber with iocp engine 2022-10-30 23:27:48 +08:00
郑树新
1f0798f7dd compile on windows 2022-10-30 20:06:23 +08:00
郑树新
e1d749eef6 compile on windows 2022-10-30 19:56:24 +08:00
zhengshuxin
bd04860c0e optimize io_uring engine in lib_fiber 2022-10-30 05:48:23 -04:00
zhengshuxin
9b977d213d optimize io_uring ... 2022-10-29 11:38:33 -04:00
zhengshuxin
9b4b38d59f optimize and test io_uring 2022-10-28 11:58:28 -04:00
zhengshuxin
913629b5e9 optimize code style 2022-10-28 06:23:52 -04:00
zhengshuxin
159e6b6bb4 test fiber 2022-10-27 06:14:15 -04:00
zhengshuxin
a87aadb291 add io_uring in master service template. 2022-10-26 11:21:28 -04:00
zhengshuxin
9286a008c5 test 2022-10-26 07:03:34 -04:00
zhengshuxin
efe06cd020 test io_uring ... 2022-10-25 06:54:43 -04:00
zhengshuxin
3f36b8da2f optimize and test fiber module 2022-10-24 03:33:06 -04:00
zhengshuxin
13bbba5061 compilie one demo 2022-10-23 21:56:29 -04:00
zhengshuxin
515e388b2e Add support io_uring in service template - master_fiber 2022-10-23 20:42:57 +08:00
郑树新
106283c9f4 build ok for windows 2022-10-23 18:08:20 +08:00
zhengshuxin
91b592152d building ... 2022-10-23 17:46:07 +08:00
zhengshuxin
fd146d9935 just compiling 2022-10-23 05:41:36 -04:00
zhengshuxin
003338f197 add compiling conditions 2022-10-23 17:38:53 +08:00
zhengshuxin
03e2dcd588 add io_uring building condition 2022-10-23 17:36:25 +08:00
zhengshuxin
5baf77edf5 add conditional compiling for using io_uring 2022-10-23 17:22:14 +08:00
zhengshuxin
9913bcdb81 build on mac 2022-10-23 10:15:04 +08:00
zhengshuxin
7dbfda84ab test demo 2022-10-20 06:05:26 -04:00
zhengshuxin
a8241bfdcc optimize and test pread/pwriter in io_uring engine 2022-10-20 05:32:22 -04:00
zhengshuxin
d8db1f5de9 test and optimize ... 2022-10-21 06:30:55 -04:00
zhengshuxin
acac293ee1 test sendfile ... 2022-10-20 01:25:54 -04:00
zhengshuxin
7e30d96f45 test sendfile of io_uring ... 2022-10-20 07:14:04 -04:00
zhengshuxin
9ceca47c9f optimize and test io_uring... 2022-10-19 06:45:10 -04:00
zhengshuxin
7f635e1cd6 test and optimize io_uring 2022-10-10 07:42:19 -04:00
zhengshuxin
f960c8f689 test io_uring 2022-10-18 06:47:08 -04:00
zhengshuxin
ecc4a945bd test and optimize io_uring ... 2022-10-17 06:33:14 -04:00
zhengshuxin
f67cac51a6 optimize and test io_uring 2022-10-17 01:55:43 -04:00
zhengshuxin
a1f492844a test 2022-10-10 02:32:21 -04:00
zhengshuxin
b9f1d3f677 optimize and test io_uring module in fiber 2022-10-10 02:25:10 -04:00
zhengshuxin
b3c2ddaac8 adding pread, pwrite, sendfile in io_uring module of fiber 2022-10-09 12:09:09 -04:00
zhengshuxin
ce0c45f8d5 add supporting file operations in io_uring event of fiber mode 2022-10-13 00:48:42 -04:00
zhengshuxin
a78f08a6a9 io_uring in fiber supports file's open, read, and write. 2022-10-12 15:44:37 -04:00