github.com/cobalt77/jfrog-client-go@v0.14.5/utils/errorsqueue.go (about) 1 package utils 2 3 type ErrorsQueue struct { 4 errorsChan chan (error) 5 } 6 7 func NewErrorsQueue(size int) *ErrorsQueue { 8 queueSize := 1 9 if size > 1 { 10 queueSize = size 11 } 12 return &ErrorsQueue{errorsChan: make(chan error, queueSize)} 13 } 14 15 func (errQueue *ErrorsQueue) AddError(err error) { 16 select { 17 case errQueue.errorsChan <- err: 18 default: 19 return 20 } 21 } 22 23 func (errQueue *ErrorsQueue) GetError() error { 24 select { 25 case err := <-errQueue.errorsChan: 26 return err 27 default: 28 return nil 29 } 30 }