Commit Graph

167 Commits

Author SHA1 Message Date
Andy Pan 566511ec5f Refactoring to the interface and implementations of worker-array 2019-10-10 03:02:04 +08:00
Kevin Bai f0e23928f4 add loop queue (#53)
* add loop queue

* add loop queue

* fix the bugs

add loop queue

move the worker queue to directory

按照新的接口实现 lifo 队列

添加新接口的环形队列实现

rename the slice queue

修复了 unlock

使用 queue 管理 goWorkerWithFunc

使用 dequeue 判断队列

add remainder

增加测试文件

循环队列需要一个空闲位

* remove interface{}

* Refine the logic of sync.Pool

* Add flowcharts of ants into READMEs

* Add the installation about ants v2

* Renew the functional options in READMEs

* Renew English and Chinese flowcharts

* rename package name

移动 worker queue 位置

worker queue 都修改为私有接口

考虑到性能问题,把 interface{} 改回到  *goworker

* 修改 releaseExpiry 和 releaseAll

* remove files

* fix some bug
2019-10-10 00:59:19 +08:00
Andy Pan b1cf2ff445 Refine the logic of sync.Pool 2019-10-06 02:02:40 +08:00
Andy Pan b0ec5102cc Refactoring 2019-10-04 11:24:13 +08:00
Andy Pan e73db1d7d2 Replace mutex with spin-lock 2019-09-27 20:51:46 +08:00
Andy Pan 89644d035c Remove some useless code 2019-09-03 09:29:26 +08:00
Andy Pan 44aec9954f A little bit of optimization in periodicallyPurge() 2019-08-25 17:41:49 +08:00
Andy Pan cbf8ddf048 Fixed #45 and Releasing v2 module 2019-08-25 14:26:14 +08:00
Andy Pan 201ac20358 Add functional options pattern for ants 2019-08-25 14:14:18 +08:00
Andy Pan d1b4e8b163 🍻Refine the `Pool.Release()` Method 2019-08-25 14:14:18 +08:00
Cholerae Hu 444711e79f support nonblocking submit and max blocking limit setting
Signed-off-by: Cholerae Hu <choleraehyq@gmail.com>
2019-08-25 14:14:18 +08:00
Andy Pan 08d01b6b48 🎏Fix a bug where invokers get stuck in waiting idle workers 2019-08-18 04:15:21 +08:00
Andy Pan af70ed0660 🎏Fix a bug where invokers get stuck in waiting idle workers 2019-08-18 02:45:32 +08:00
Andy Pan 61660e2109 📚Refactor the blocking logic in retrieveWorker function 2019-07-27 13:08:09 +08:00
Andy Pan 51c0008356 🐞Fix a bug that blocks getting worker from pool 2019-07-27 12:05:44 +08:00
Andy Pan 71faec8c1a ☄️Rename the function with the more applicable name 2019-07-26 23:52:05 +08:00
anteoy 3e1c7a03a5 optimize memory allocation and add the log of panic stack 2019-07-26 23:22:24 +08:00
Andy Pan 9eb91a4ae0 📝Optimize the logic when cleaning up expired workers 2019-07-26 14:14:58 +08:00
markjiang 21a109c7f0 优化清理速度并修复内存泄漏 2019-07-26 12:00:11 +08:00
Andy Pan d6076c09aa 🙄 Improvement in `periodicallyPurge` 2019-04-14 11:30:19 +08:00
Andy Pan 00294fd50b 😏 Optimization of the structure and style 2019-04-14 11:08:06 +08:00
Andy Pan 05fbdb8d5b 🎭 Fix race error 2019-04-14 11:08:06 +08:00
Andy Pan aa7dd6f8cc 🦖 Develop a more graceful release 2019-04-14 11:08:06 +08:00
Andy Pan 15507b021f 🚀 Support not only anonymous but also explicit functions 2019-02-02 10:36:40 +08:00
Andy Pan 91377c898b 🦅 Fix a bug when using sync.Pool 2019-01-27 05:10:13 +08:00
Andy Pan 5c666692e9 🐬 Code logic improvement in pool.retrieveWorker 2019-01-27 04:25:36 +08:00
Andy Pan 689d74c63b Refactor about the synchronous lock 2019-01-27 04:05:58 +08:00
Andy Pan 908553139c 🐬 Performance improvement: use sync.Pool to cache active workers 2019-01-27 00:26:24 +08:00
Andy Pan 90f672b9d5 update 2019-01-26 21:45:49 +08:00
Andy Pan f8d71bb276 🐯 Refactor variable "release" with atomic operation 2019-01-26 15:29:05 +08:00
Andy Pan b091435432 🐲 An optimization in worker channel 2019-01-26 14:32:12 +08:00
Andy Pan c829c6f622 🐶 Replace the type of variable "release" with bool type 2019-01-26 13:45:00 +08:00
Andy Pan 096e6f1513 🦁 Fix the bug in function "Submit()" 2019-01-26 13:16:35 +08:00
Andy Pan d3bcc5d10b 🐳 Use the nil of chan to indicate the pool closed or not 2019-01-26 12:26:26 +08:00
Andy Pan 65b3ac9ff7 🐉 Optimize code comments 2019-01-25 22:01:11 +08:00
Cholerae Hu 9158bd3702 feature: add PanicHandler
Signed-off-by: Cholerae Hu <choleraehyq@gmail.com>
2019-01-22 13:41:33 +08:00
Andy Pan 4320708756 supplement annotations 2018-12-07 01:11:54 +08:00
Andy Pan 639f55c4c9
Merge pull request #19 from zplzpl/hotfix/tickerStop
Possible memory leak because of Ticker
2018-12-01 23:49:31 +08:00
Andy Pan d8c168b198 remove useless return value from pool function 2018-12-01 19:22:05 +08:00
Andy Pan d052cf95e1 add some annotations 2018-12-01 18:41:42 +08:00
unknown e7bacd0f12 Possible memory leak because of Ticker 2018-11-19 10:57:53 +08:00
SimePel d9eac77ae5 remove meaningless if 2018-10-01 19:45:21 +07:00
AndyPan 1b62696050 add comments for waiting to get a idle worker 2018-09-30 09:46:56 +08:00
AndyPan e538683d3f add comments 2018-09-30 09:41:47 +08:00
AndyPan e8ccc8ecca format 2018-09-30 09:40:33 +08:00
liyonglion 1846b4392a 解决竞争锁导致bug 2018-09-29 14:58:58 +08:00
liyonglion 8ecd5078ac 解决死锁问题 2018-09-29 10:19:17 +08:00
liyonglion 70731aff71 解决死循环导致cpu占用率过高 2018-09-28 19:28:09 +08:00
andy pan e25a58c9f3 optimization for cleaning workers 2018-08-29 10:02:41 +08:00
andy pan 8556a67f0f fixed workers leak 2018-08-29 09:53:07 +08:00
andy pan 50918eb4a9 update 2018-08-08 18:13:50 +08:00
andy pan e99d428a5f fixed #7 2018-08-08 18:08:06 +08:00
andy pan 62fc58f047 fixed 清理过期协程报错 #7 2018-08-08 17:22:40 +08:00
Andy Pan 7a2f4e4681 add more comments 2018-08-04 11:12:06 +08:00
Andy Pan 4927155de3 fixed issue #6 2018-08-03 21:15:11 +08:00
Andy Pan 1444008b67 rename methods 2018-08-03 19:28:46 +08:00
andy pan 39951bd2f5 format codes 2018-07-31 11:05:48 +08:00
andy pan 59ad1fa56c optimization for structure 2018-07-31 11:05:05 +08:00
andy pan 042109890a make some methods unexported 2018-07-31 11:03:41 +08:00
barryz 83042d7095 pre-allocate the capacity of the worker list 2018-07-25 22:28:11 +08:00
Andy Pan 634682856f Merge branch 'develop' 2018-07-24 22:30:37 +08:00
Andy Pan a326530368 rename the monitorAndClear function 2018-07-21 18:50:18 +08:00
Andy Pan 4553a7a1c6 update codecov test 2018-07-16 02:43:38 +08:00
Andy Pan d31b2413c6 update 2018-07-16 02:33:43 +08:00
Andy Pan eaf79d239f fixed some issues 2018-07-16 01:21:23 +08:00
Andy Pan 9b4f9c7b48 update codecov test 2018-07-15 22:45:55 +08:00
Andy Pan 74e49c9f28 fixed race issue 2018-07-15 21:16:27 +08:00
Andy Pan 4d0682d342 fixed race issue 2018-07-15 21:09:59 +08:00
Andy Pan d77f01cf9a optimization for GC 2018-07-15 00:57:32 +08:00
Andy Pan 3afa151dd9 simplify and optimize goroutine-worker 2018-07-15 00:52:18 +08:00
Andy Pan c4a50a1867 optimization for pool 2018-07-13 00:11:42 +08:00
Andy Pan 5aa4fd3b9d update 2018-07-08 10:38:40 +08:00
Andy Pan 2e7d823141 optimization for timed task to clear idle workers 2018-07-08 10:29:12 +08:00
Andy Pan 6da1112dff gofmt 2018-07-06 20:24:47 +08:00
Andy Pan 339aaa4475 update 2018-07-06 20:20:18 +08:00
andy pan afba560448 format codes 2018-07-06 15:00:30 +08:00
andy pan b21f63142d fixed the "slice bounds out of range" error 2018-07-06 14:56:59 +08:00
andy pan 5ae6239a57 start a goroutine to clear expired workers when init a pool 2018-07-06 14:42:26 +08:00
andy pan 0cb5a50036 rename func 2018-07-06 14:35:30 +08:00
andy pan d04febc0b2 clear expired workers for Pool 2018-07-06 14:33:07 +08:00
andy pan e64217c364 optimization for releasing pool 2018-06-22 11:42:05 +08:00
Andy Pan daf637e4f7 optimization for getWorker() 2018-06-15 08:04:28 +08:00
andy pan affcb8eaf7 Merge branch 'develop' 2018-05-30 12:59:00 +08:00
andy pan d56ebb1a29 finish the ReSize() and Release() methods 2018-05-30 12:57:20 +08:00
Andy Pan 5326374a22 Auto stash before merge of "develop" and "origin/develop" 2018-05-24 23:43:34 +08:00
andy pan aaa7bad491 rearrange task channel 2018-05-24 19:32:45 +08:00
andy pan 07f98b4ac6 remove some comments 2018-05-24 19:30:18 +08:00
andy pan ab6390f6d0 optimization 2018-05-24 19:27:54 +08:00
andy pan 6581f1821d update 2018-05-24 18:35:26 +08:00
andy pan 2e3a9a650e update go test 2018-05-23 17:21:39 +08:00
Andy Pan 0453f88168 update 2018-05-23 00:46:43 +08:00
andy pan f4a3fc5efd add one more check when getting worker 2018-05-22 16:10:29 +08:00
andy pan 4c08436194 format the some comments 2018-05-21 10:37:03 +08:00
Andy Pan 0244b2356f update MIT license info 2018-05-20 23:57:48 +08:00
Andy Pan f0c48f295b golint the codes 2018-05-20 21:41:32 +08:00
Andy Pan 47e2b9efaa gofmt 2018-05-20 21:29:38 +08:00
Andy Pan 301221be5d add all comments 2018-05-20 21:09:45 +08:00
Andy Pan 1ee8144272 add a new module of cleaning up goroutines 2018-05-20 18:57:11 +08:00
Andy Pan 2b0c0227b6 add the copyright of MIT license 2018-05-20 16:37:17 +08:00
Andy Pan ddcdb57b63 pass the benchmark test 2018-05-20 16:22:56 +08:00