Skip to content
Snippets Groups Projects
Select Git revision
  • 4132c09d965d94d2dfe7c7203a093162bf41fd77
  • master default protected
  • 1.2.4
  • 1.2.3
  • 1.2.2
  • 1.2.1
  • 1.2.0
  • v1.1.0
8 results

catalog.go

Blame
  • runnable-counter.go 624 B
    package jobqueue
    
    import (
    	"sync"
    )
    
    // CounterResult is a result of a counter
    type CounterResult struct {
    	Count int
    }
    
    // CounterRunnable is a runnable that counts
    type CounterRunnable struct {
    	Count int
    	mu    sync.Mutex
    }
    
    // GetCount returns the current count
    func (c *CounterRunnable) GetCount() int {
    	c.mu.Lock()
    	defer c.mu.Unlock()
    	return c.Count
    }
    
    // Run runs the counter
    func (c *CounterRunnable) Run() (RunResult[CounterResult], error) {
    	c.mu.Lock()
    	defer c.mu.Unlock()
    
    	c.Count++
    
    	return RunResult[CounterResult]{
    		Status: ResultStatusSuccess,
    		Data: CounterResult{
    			Count: c.Count,
    		},
    	}, nil
    }