* concurrency/lock: Adds context and outercancel locks
Adds context lock which will cancel and return an error to Lock & RLock
if the given context cancels before the lock is achieved.
Adds outercancel lock which will cancel all RLocks in progress if the
outer Lock is called.
Signed-off-by: joshvanl <me@joshvanl.dev>
* lint
Signed-off-by: joshvanl <me@joshvanl.dev>
* Lint
Signed-off-by: joshvanl <me@joshvanl.dev>
* Fix tests
Signed-off-by: joshvanl <me@joshvanl.dev>
* lint
Signed-off-by: joshvanl <me@joshvanl.dev>
* lint
Signed-off-by: joshvanl <me@joshvanl.dev>
---------
Signed-off-by: joshvanl <me@joshvanl.dev>
* concurrency/dir & WriteIdentityToFile
Adds concurrency/dir package to handle atomically writing files to a
directory.
Adds support for spiffe to optionally write the identity certificate,
private key and trust bundle to a given directory.
Signed-off-by: joshvanl <me@joshvanl.dev>
* Adds Dir comment
Signed-off-by: joshvanl <me@joshvanl.dev>
---------
Signed-off-by: joshvanl <me@joshvanl.dev>
* Adds generic ring
Adds a generic implementation of the stdblib ring buffer so that each
ring `Value` can be a concrete type.
https://pkg.go.dev/container/ring
Adds `Len() int` and `Keys() []K` func to the generic Map cmap.
Changes `events/queue` Processor `Queueable` to be an exported type. No
functional change, but consumed types should be exported.
Signed-off-by: joshvanl <me@joshvanl.dev>
* Adds ring_test.go
Signed-off-by: joshvanl <me@joshvanl.dev>
* Linting
Signed-off-by: joshvanl <me@joshvanl.dev>
* Linting
Signed-off-by: joshvanl <me@joshvanl.dev>
* Update Do func to be typed
Signed-off-by: joshvanl <me@joshvanl.dev>
* Adds ring/buffered
Signed-off-by: joshvanl <me@joshvanl.dev>
---------
Signed-off-by: joshvanl <me@joshvanl.dev>
* Adds FIFO concurrent lock & generic concurrent Slice
Adds a new concurrency/fifo package which implements a fifo mutex, as
well as a concurrently safe comparable indexed map of fifo mutexes.
Adds a simple generic concurrently safe slice implementation, which can
currently only grow.
Moves the map generic implementations in `/concurrency` to
`/concurrency/cmap`.
Signed-off-by: joshvanl <me@joshvanl.dev>
* Linting
Signed-off-by: joshvanl <me@joshvanl.dev>
* Move concurency/slice.go to concurency/slice/slice.go and add concurency/slice/string.go
Signed-off-by: joshvanl <me@joshvanl.dev>
---------
Signed-off-by: joshvanl <me@joshvanl.dev>
* Adds Mutex Map
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* Adds an atomic map
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* More work on atomic map and mutex map
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* Fixes, improvements and more tests
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* Updates interface
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* Linter
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* Refactors atomic map to use generics
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* cleanups
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* Apply suggestions from code review
Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Signed-off-by: Elena Kolevska <elena-kolevska@users.noreply.github.com>
* small reorg
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* Adds ItemCount()
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* Removes atomicmap in favour of haxmap
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* formats fix and adds comment
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* Update concurrency/mutexmap.go
Co-authored-by: Josh van Leeuwen <me@joshvanl.dev>
Signed-off-by: Elena Kolevska <elena-kolevska@users.noreply.github.com>
* Uses built in `clear`
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* Revert "Removes atomicmap in favour of haxmap"
This reverts commit 20ca9ad197.
Signed-off-by: Elena Kolevska <elena@kolevska.com>
* Uses clear() for atomic map too
Signed-off-by: Elena Kolevska <elena@kolevska.com>
---------
Signed-off-by: Elena Kolevska <elena@kolevska.com>
Signed-off-by: Elena Kolevska <elena-kolevska@users.noreply.github.com>
Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Co-authored-by: Josh van Leeuwen <me@joshvanl.dev>
* Move dapr/concurrency to kit
Does not include any code change
Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
* Fixed copyright year
Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
* Improved memory usage in error collection
Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
---------
Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>