diff options
Diffstat (limited to 'Godeps/_workspace/src/github.com/braintree/manners/test_helpers/wait_group.go')
-rw-r--r-- | Godeps/_workspace/src/github.com/braintree/manners/test_helpers/wait_group.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/wait_group.go b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/wait_group.go new file mode 100644 index 000000000..1df590db7 --- /dev/null +++ b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/wait_group.go @@ -0,0 +1,33 @@ +package test_helpers + +import "sync" + +type WaitGroup struct { + sync.Mutex + Count int + WaitCalled chan int +} + +func NewWaitGroup() *WaitGroup { + return &WaitGroup{ + WaitCalled: make(chan int, 1), + } +} + +func (wg *WaitGroup) Add(delta int) { + wg.Lock() + wg.Count++ + wg.Unlock() +} + +func (wg *WaitGroup) Done() { + wg.Lock() + wg.Count-- + wg.Unlock() +} + +func (wg *WaitGroup) Wait() { + wg.Lock() + wg.WaitCalled <- wg.Count + wg.Unlock() +} |