locker

package module
v0.0.0-...-a6e239e Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2017 License: Unlicense Imports: 2 Imported by: 57

README

Package locker is a simple package to manage named ReadWrite mutexes. These appear to be especially useful for synchronizing access to session based information in web applications.

The common use case is to use the package level functions, which use a package level set of locks (safe to use from multiple goroutines simultaneously). However, you may also create a new separate set of locks.

All locks are implemented with read-write mutexes. To use them like a regular mutex, simply ignore the RLock/RUnlock functions.

Installation

go get github.com/BurntSushi/locker

Documentation

http://godoc.org/github.com/BurntSushi/locker

Documentation

Overview

Package locker is a simple package to manage named ReadWrite mutexes. These appear to be especially useful for synchronizing access to session based information in web applications.

The common use case is to use the package level functions, which use a package level set of locks (safe to use from multiple goroutines simultaneously). However, you may also create a new separate set of locks.

All locks are implemented with read-write mutexes. To use them like a regular mutex, simply ignore the RLock/RUnlock functions.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Lock

func Lock(key string)

func RLock

func RLock(key string)

func RUnlock

func RUnlock(key string)

func Unlock

func Unlock(key string)

Types

type Locker

type Locker struct {
	// contains filtered or unexported fields
}

Locker represents the set of named ReadWrite mutexes. It is safe to access from multiple goroutines simultaneously.

func NewLocker

func NewLocker() *Locker

func (*Locker) Lock

func (lker *Locker) Lock(key string)

func (*Locker) RLock

func (lker *Locker) RLock(key string)

func (*Locker) RUnlock

func (lker *Locker) RUnlock(key string)

func (*Locker) Unlock

func (lker *Locker) Unlock(key string)

Notes

Bugs

  • The locker here can grow without bound in long running programs. Since it's intended to be used in web applications, this is a major problem. Figure out a way to keep the locker lean.

Jump to

Keyboard shortcuts

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