diff --git a/README.md b/README.md index b978649..198ed04 100644 --- a/README.md +++ b/README.md @@ -182,9 +182,9 @@ There was only the test of `ants` Pool because my computer was crash when it rea **As you can see, `ants` can up to 2x~6x faster than goroutines without pool and the memory consumption is reduced by 10 to 20 times.** -[1]: https://travis-ci.com/panjf2000/ants.svg?branch=master +[1]: https://travis-ci.com/panjf2000/ants.svg?branch=develop [2]: https://travis-ci.com/panjf2000/ants -[3]: https://codecov.io/gh/panjf2000/ants/branch/master/graph/badge.svg +[3]: https://codecov.io/gh/panjf2000/ants/branch/develop/graph/badge.svg [4]: https://codecov.io/gh/panjf2000/ants [5]: https://goreportcard.com/badge/github.com/panjf2000/ants [6]: https://goreportcard.com/report/github.com/panjf2000/ants diff --git a/README_ZH.md b/README_ZH.md index e06c36e..1ba7098 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -180,9 +180,9 @@ Go1.9 **从该demo测试吞吐性能对比可以看出,使用ants的吞吐性能相较于原生goroutine可以保持在2-6倍的性能压制,而内存消耗则可以达到10-20倍的节省优势。** -[1]: https://travis-ci.com/panjf2000/ants.svg?branch=master +[1]: https://travis-ci.com/panjf2000/ants.svg?branch=develop [2]: https://travis-ci.com/panjf2000/ants -[3]: https://codecov.io/gh/panjf2000/ants/branch/master/graph/badge.svg +[3]: https://codecov.io/gh/panjf2000/ants/branch/develop/graph/badge.svg [4]: https://codecov.io/gh/panjf2000/ants [5]: https://goreportcard.com/badge/github.com/panjf2000/ants [6]: https://goreportcard.com/report/github.com/panjf2000/ants diff --git a/pool.go b/pool.go index ac3edcd..96873cd 100644 --- a/pool.go +++ b/pool.go @@ -129,16 +129,6 @@ func (p *Pool) Running() int { return int(atomic.LoadInt32(&p.running)) } -// IncrRunning increases the number of the currently running goroutines -func (p *Pool) IncrRunning() { - atomic.AddInt32(&p.running, 1) -} - -// DecrRunning decreases the number of the currently running goroutines -func (p *Pool) DecrRunning() { - atomic.AddInt32(&p.running, -1) -} - // Free returns the available goroutines to work func (p *Pool) Free() int { return int(atomic.LoadInt32(&p.capacity) - atomic.LoadInt32(&p.running)) @@ -182,6 +172,16 @@ func (p *Pool) Release() error { //------------------------------------------------------------------------- +// incrRunning increases the number of the currently running goroutines +func (p *Pool) incrRunning() { + atomic.AddInt32(&p.running, 1) +} + +// decrRunning decreases the number of the currently running goroutines +func (p *Pool) decrRunning() { + atomic.AddInt32(&p.running, -1) +} + // getWorker returns a available worker to run the tasks. func (p *Pool) getWorker() *Worker { var w *Worker @@ -215,7 +215,7 @@ func (p *Pool) getWorker() *Worker { task: make(chan f, 1), } w.run() - p.IncrRunning() + p.incrRunning() } return w } diff --git a/pool_func.go b/pool_func.go index 77221e4..ee8c9c5 100644 --- a/pool_func.go +++ b/pool_func.go @@ -134,16 +134,6 @@ func (p *PoolWithFunc) Running() int { return int(atomic.LoadInt32(&p.running)) } -// IncrRunning increases the number of the currently running goroutines -func (p *PoolWithFunc) IncrRunning() { - atomic.AddInt32(&p.running, 1) -} - -// DecrRunning decreases the number of the currently running goroutines -func (p *PoolWithFunc) DecrRunning() { - atomic.AddInt32(&p.running, -1) -} - // Free returns the available goroutines to work func (p *PoolWithFunc) Free() int { return int(atomic.LoadInt32(&p.capacity) - atomic.LoadInt32(&p.running)) @@ -187,6 +177,16 @@ func (p *PoolWithFunc) Release() error { //------------------------------------------------------------------------- +// incrRunning increases the number of the currently running goroutines +func (p *PoolWithFunc) incrRunning() { + atomic.AddInt32(&p.running, 1) +} + +// decrRunning decreases the number of the currently running goroutines +func (p *PoolWithFunc) decrRunning() { + atomic.AddInt32(&p.running, -1) +} + // getWorker returns a available worker to run the tasks. func (p *PoolWithFunc) getWorker() *WorkerWithFunc { var w *WorkerWithFunc @@ -220,7 +220,7 @@ func (p *PoolWithFunc) getWorker() *WorkerWithFunc { args: make(chan interface{}, 1), } w.run() - p.IncrRunning() + p.incrRunning() } return w } diff --git a/worker.go b/worker.go index 8d29a3a..aa4e761 100644 --- a/worker.go +++ b/worker.go @@ -46,7 +46,7 @@ func (w *Worker) run() { go func() { for f := range w.task { if f == nil { - w.pool.DecrRunning() + w.pool.decrRunning() return } f() diff --git a/worker_func.go b/worker_func.go index 22b6069..277ee31 100644 --- a/worker_func.go +++ b/worker_func.go @@ -46,7 +46,7 @@ func (w *WorkerWithFunc) run() { go func() { for args := range w.args { if args == nil { - w.pool.DecrRunning() + w.pool.decrRunning() return } w.pool.poolFunc(args)