Commit Graph

101 Commits

Author SHA1 Message Date
Andy Pan 34ff2c2282 chore: fix a few lint issues in code 2024-04-15 18:13:28 +08:00
Andy Pan 19bd1ea02b
feat: add MultiPool and MultiPoolWithFunc (#305) 2023-11-21 11:53:46 +08:00
E_L a66958c9d3
feat: add a new API `ReleaseTimeout` for the default pool (#285)
Co-authored-by: EL <evnldn9321@gmail.com>
2023-07-01 12:55:34 +08:00
Andy Pan 846d76a437 opt: cache current time for workders and update it periodically 2022-12-11 19:49:58 +08:00
Andy Pan b4dedcd523 ci: refine the Github action workflows 2022-11-20 11:23:35 +08:00
Andy Pan b604f7dc64 opt: fix the timeout error of ReleaseTimeout() with DisablePurge=true and improve tests 2022-10-11 22:52:13 +08:00
zhenshan.cao 8b106abaf3
Add option to turn off automatically purge (#253)
Fixes #252 

Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
2022-10-11 21:16:04 +08:00
Andy Pan 96d074234a Add a new method -- ReleaseTimeout() for waiting all workers to exit
Fixes #212
2022-03-08 16:28:12 +08:00
codingfanlt fbd17036db
Awake the blocking callers when Tune(size int) is invoked to expand the pool (#210)
Fixes #205
2022-02-14 21:51:40 +08:00
Andy Pan 0fa2fd6dc1 Resolve lint issues 2022-02-08 13:55:42 +08:00
Andy Pan 8d03fcf77f Fix the bug that blocks forever when call Release() before all tasks are done
Fixes #202
2022-02-08 13:53:21 +08:00
jdamick 63489606ef
Fix the timing issue in the TestNonblockingSubmitWithFunc (#172)
On some machines this unit would fail due to a timing issue.  Since the Invoke in the loop was using nil as the param, it would (depending on timing) lead to the workers finishing the  (w *goWorkerWithFunc) run() in the range loop over w.args as args would == nil and return.

If an explicit time.Sleep(1 * time.Second) is added before the "	assert.EqualError(t, p.Invoke(nil), ErrPoolOverload.Error()," it is easily reproducible.

Co-authored-by: Jeffrey Damick <jdamick@amazon.com>
2021-07-12 22:52:47 +08:00
Andy Pan a2ad870d2d Returns -1 from Free() by unlimited pool
Fixes #152
2021-04-27 08:18:51 +08:00
Andy Pan 678f39767e Upgrade golangci-lint and format some code 2020-07-05 00:04:47 +08:00
Andy Pan ad86bfa6d2 Improve the unlimited pool
Updates #90
2020-05-27 22:26:39 +08:00
Andy Pan 1c534853c8 Support unlimited pool
Fixes #90
2020-05-08 23:24:26 +08:00
Andy Pan d55cc24a22 Fix code issues 2020-04-08 13:16:14 +08:00
Andy Pan e507ae340f Support customized logger 2020-03-13 00:02:19 +08:00
Andy Pan d32d668565 Add a feature of rebooting a released pool 2020-01-16 23:45:15 +08:00
Andy Pan ea787e5c0b Leverage tool testify to refine unit-test code 2020-01-08 11:07:12 +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
Andy Pan 0a946593e2 Fix a issue in testing nonblocking pool 2019-10-04 11:36:11 +08:00
Andy Pan b0ec5102cc Refactoring 2019-10-04 11:24:13 +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
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 b4dce88db7 🎏Fix some ill-formed code in unit tests 2019-08-25 14:13:57 +08:00
Andy Pan a1888b140c 🧸Remove useless test cases 2019-07-27 13:10:11 +08:00
Andy Pan 9cfc9fa643 🎲Add more test cases for new code 2019-07-27 12:05:55 +08:00
Andy Pan 94763266ad 🔋Fix some minor mistakes in test cases 2019-07-27 11:14:01 +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 00294fd50b 😏 Optimization of the structure and style 2019-04-14 11:08:06 +08:00
Andy Pan cd84ab67b3 🍜 Restore comments 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 4ae3fb8dc4 🏆 Code coverage improvement 2019-02-23 00:46:49 +08:00
Andy Pan 8bb0cde224 🌏 Reduce the threshold time of cleaning up goroutines in test code 2019-02-23 00:29:27 +08:00
Andy Pan b8d6f7f9d6 ☃️ Update go test for new function name 2019-02-19 20:10:01 +08:00
Andy Pan c80af4dd6e 🐻 gofmt code 2019-01-29 20:51:34 +08:00
Andy Pan e988680ffc 🎷 Reset the unit tests to default core number 2019-01-27 13:32:40 +08:00
Andy Pan 72bf8e2fb5 🎠 Do the code coverage test with multiple-cores and skip it when it is single-core 2019-01-27 12:57:53 +08:00
Andy Pan c4d92bf4ef 🍁 Replace the data type of periodical duration with a constant 2019-01-27 12:16:51 +08:00
Andy Pan 182c335275 🍩 Unit tests improvement: more functions to cover more code 2019-01-27 05:31:29 +08:00
Andy Pan 822158c59c 🐳 Add test cases for sync.Pool 2019-01-27 05:10:13 +08:00
Andy Pan 840634ae51 🐳 Add test cases for sync.Pool 2019-01-27 05:10:13 +08:00
Andy Pan 689d74c63b Refactor about the synchronous lock 2019-01-27 04:05:58 +08:00
Andy Pan 049de4139f 🐾 Refactor unit tests to support sync.Pool testing 2019-01-27 03:15:19 +08:00
Andy Pan deff3a2beb 🦖 Add more unit tests for the near-perfect code coverage 2019-01-27 02:32:37 +08:00