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  }