aboutsummaryrefslogtreecommitdiff
path: root/models/working_pool.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/working_pool.go')
-rw-r--r--models/working_pool.go47
1 files changed, 0 insertions, 47 deletions
diff --git a/models/working_pool.go b/models/working_pool.go
deleted file mode 100644
index c522de56..00000000
--- a/models/working_pool.go
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package models
-
-import (
- "sync"
-)
-
-// workingPool represents a pool of working status which makes sure
-// that only one instance of same task is performing at a time.
-// However, different type of tasks can performing at the same time.
-type workingPool struct {
- lock sync.Mutex
- pool map[string]*sync.Mutex
- count map[string]int
-}
-
-// CheckIn checks in a task and waits if others are running.
-func (p *workingPool) CheckIn(name string) {
- p.lock.Lock()
-
- lock, has := p.pool[name]
- if !has {
- lock = &sync.Mutex{}
- p.pool[name] = lock
- }
- p.count[name]++
-
- p.lock.Unlock()
- lock.Lock()
-}
-
-// CheckOut checks out a task to let other tasks run.
-func (p *workingPool) CheckOut(name string) {
- p.lock.Lock()
- defer p.lock.Unlock()
-
- p.pool[name].Unlock()
- if p.count[name] == 1 {
- delete(p.pool, name)
- delete(p.count, name)
- } else {
- p.count[name]--
- }
-}