An open API service providing package, version and dependency metadata of many open source software ecosystems and registries.

Top 8.2% on proxy.golang.org

proxy.golang.org : github.com/ssgreg/stl

Package `stl` provides multiple atomic dynamic shared/exclusive locks, based of Software Transactional Memory (STM) concurrency control mechanism. In addition `stl` locks can take `context.Context` that allows to cancel or set a deadline for such locks. Locks are fast and lightweight. The implementation requires only one `mutex` and one `channel` per vault (a set of locks with any number of resources). `stl` can lock any number of resources atomically without a deadlock. Each resource can be locked in `exclusive` manner (only one locker can lock such resource at the same time) or in `shared` manner (all 'shared' lockers can lock such resource at the same time, a locker that wants to lock such resource 'exclusively' will wait them to finish). You can also combine `shared` and `exclusive` resources while building a transaction or transactional locker: It's also possible to call `locker.LockWithContext(ctx)` if you want to be able to cancel or set a deadline for locking operation. This will add additional flexibility to your applications.

Registry - Source - Documentation - JSON
purl: pkg:golang/github.com/ssgreg/stl
License: MIT
Latest release: over 5 years ago
First release: over 6 years ago
Namespace: github.com/ssgreg
Stars: 26 on GitHub
Forks: 4 on GitHub
See more repository details: repos.ecosyste.ms
Last synced: 18 days ago