github.com/jfrog/jfrog-client-go@v1.40.2/utils/errorsqueue.go (about)

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