From 47492260e8821901b5a778ce34f29812bffa912e Mon Sep 17 00:00:00 2001 From: Marius Date: Fri, 18 Dec 2015 23:20:52 +0100 Subject: [PATCH] Add documentation for MemoryLocker --- lockingstore/memorylocker.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lockingstore/memorylocker.go b/lockingstore/memorylocker.go index b8722ec..6536eb9 100644 --- a/lockingstore/memorylocker.go +++ b/lockingstore/memorylocker.go @@ -4,16 +4,21 @@ import ( "github.com/tus/tusd" ) +// MemoryLocker persists locks using memory and therefore allowing a simple and +// cheap mechansim. Locks will only exist as long as this object is kept in +// reference and will be erased if the program exits. type MemoryLocker struct { locks map[string]bool } +// New creates a new lock memory persistor. func New() *MemoryLocker { return &MemoryLocker{ locks: make(map[string]bool), } } +// LockUpload tries to obtain the exclusive lock. func (locker *MemoryLocker) LockUpload(id string) error { // Ensure file is not locked @@ -26,6 +31,7 @@ func (locker *MemoryLocker) LockUpload(id string) error { return nil } +// UnlockUpload releases a lock. If no such lock exists, no error will be returned. func (locker *MemoryLocker) UnlockUpload(id string) error { // Deleting a non-existing key does not end in unexpected errors or panic // since this operation results in a no-op