Version: v0.17.10 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Aug 20, 2021 License: GPL-3.0 Imports: 0 Imported by: 0



Package concurrency is a very simple implementation of a mutex with channels. Provides TryLock functionality absent in Go's regular sync.Mutex. See for details.



This section is empty.


This section is empty.


This section is empty.


type GoRoutinePool

type GoRoutinePool struct {
	// contains filtered or unexported fields

GoRoutinePool is a pull of Go routines with associated locking mechanism.

func NewGoRoutinePool

func NewGoRoutinePool(numWorkers int) *GoRoutinePool

NewGoRoutinePool allocates a new thread pool with `numWorkers` goroutines.

func (*GoRoutinePool) Schedule

func (p *GoRoutinePool) Schedule(task Task)

Schedule enqueus a closure to run on the GoRoutinePool's goroutines.

func (*GoRoutinePool) Stop

func (p *GoRoutinePool) Stop()

Stop sends a stop signal to all running goroutines.

type SimpleMutex added in v0.16.9

type SimpleMutex chan struct{}

SimpleMutex is a channel used for locking.

func NewSimpleMutex added in v0.16.9

func NewSimpleMutex() SimpleMutex

NewSimpleMutex creates and returns a new SimpleMutex object.

func (SimpleMutex) Lock added in v0.16.9

func (s SimpleMutex) Lock()

Lock acquires a lock on the mutex.

func (SimpleMutex) TryLock added in v0.16.9

func (s SimpleMutex) TryLock() bool

TryLock attempts to acquire a lock on the mutex. Returns true if the lock has been acquired, false otherwise.

func (SimpleMutex) Unlock added in v0.16.9

func (s SimpleMutex) Unlock()

Unlock releases the mutex.

type Task

type Task func()

Task represents a work task to be run on the specified thread pool.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL