Commit Graph

125 Commits

Author SHA1 Message Date
Andy Pan 1c534853c8 Support unlimited pool
Fixes #90
2020-05-08 23:24:26 +08:00
Andy Pan e507ae340f Support customized logger 2020-03-13 00:02:19 +08:00
l d8cb036198
Fix a bug that doesn't release lock (#79) 2020-02-26 11:15:02 +08:00
Andy Pan d32d668565 Add a feature of rebooting a released pool 2020-01-16 23:45:15 +08:00
Andy Pan 3bfc4f2ebd sync.Pool opt 2019-10-24 22:32:12 +08:00
Andy Pan 7aaa4349f5 Optimize loop queue of workers 2019-10-20 18:38:11 +08:00
Andy Pan 52b301019a Fix typos and add comments 2019-10-15 14:50:38 +08:00
Andy Pan 5ecbdf4bf2 Make optimization to Pool and PoolWithFunc struct 2019-10-10 22:28:21 +08:00
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