mirror of https://github.com/panjf2000/ants.git
feat: add a new API `ReleaseTimeout` for the default pool (#285)
Co-authored-by: EL <evnldn9321@gmail.com>
This commit is contained in:
parent
d3b35b8db2
commit
a66958c9d3
5
ants.go
5
ants.go
|
@ -123,6 +123,11 @@ func Release() {
|
||||||
defaultAntsPool.Release()
|
defaultAntsPool.Release()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReleaseTimeout is like Release but with a timeout, it waits all workers to exit before timing out.
|
||||||
|
func ReleaseTimeout(timeout time.Duration) error {
|
||||||
|
return defaultAntsPool.ReleaseTimeout(timeout)
|
||||||
|
}
|
||||||
|
|
||||||
// Reboot reboots the default pool.
|
// Reboot reboots the default pool.
|
||||||
func Reboot() {
|
func Reboot() {
|
||||||
defaultAntsPool.Reboot()
|
defaultAntsPool.Reboot()
|
||||||
|
|
12
ants_test.go
12
ants_test.go
|
@ -973,3 +973,15 @@ func TestReleaseTimeout(t *testing.T) {
|
||||||
err = pf.ReleaseTimeout(2 * time.Second)
|
err = pf.ReleaseTimeout(2 * time.Second)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDefaultPoolReleaseTimeout(t *testing.T) {
|
||||||
|
Reboot()
|
||||||
|
for i := 0; i < 5; i++ {
|
||||||
|
_ = Submit(func() {
|
||||||
|
time.Sleep(time.Second)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
assert.NotZero(t, Running())
|
||||||
|
err := ReleaseTimeout(2 * time.Second)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue