Displaying 1 to 10 from 10 results

dsync - A distributed sync package.

  •    Go

A distributed locking and syncing package for Go.dsync is a package for doing distributed locks over a network of n nodes. It is designed with simplicity in mind and hence offers limited scalability (n <= 16). Each node will be connected to all other nodes and lock requests from any node will be broadcast to all connected nodes. A node will succeed in getting the lock if n/2 + 1 nodes (whether or not including itself) respond positively. If the lock is acquired it can be held for as long as the client desires and needs to be released afterwards. This will cause the release to be broadcast to all nodes after which the lock becomes available again.

drwmutex - Distributed RWMutex in Go

  •    Go

The default Go implementation of sync.RWMutex does not scale well to multiple cores, as all readers contend on the same memory location when they all try to atomically increment it. This repository provides an n-way RWMutex, also known as a "big reader" lock, which gives each CPU core its own RWMutex. Readers take only a read lock local to their core, whereas writers must take all locks in order. Note that the current implementation only supports x86 processors on Linux; other combinations will revert (automatically) to the old sync.RWMutex behaviour. To support other architectures and OSes, the appropriate cpu_GOARCH.go and cpus_GOOS.go files need to be written. If you have a different setup available, and have the time to write one of these, I'll happily accept patches.




Ward - A static analysis tool for C.

  •    Haskell

A static analysis tool for C. Ward accepts C99 source files, annotated with permissions, and verifies that permissions are correct for all top-level functions. A permission is a constraint on the context in which some code is allowed to run, and can be used to verify things like locking, signal-safety, program phases (e.g., initialization and shutdown), and memory allocation (e.g., disallowing allocation in performance- or safety-critical code).

flock - Thread-safe file locking library in Go (originally github.com/theckman/go-flock)

  •    Go

flock implements a thread-safe sync.Locker interface for file locking. It also includes a non-blocking TryLock() function to allow locking without blocking execution. flock is released under the BSD 3-Clause License. See the LICENSE file for more details.

node-proper-lockfile - An inter-process and inter-machine lockfile utility that works on a local or network file system

  •    Javascript

An inter-process and inter-machine lockfile utility that works on a local or network file system. There are various ways to achieve file locking.

terraform-aws-tfstate-backend - Provision an S3 bucket to store terraform

  •    HCL

Terraform module to provision an S3 bucket to store terraform.tfstate file and a DynamoDB table to lock the state file to prevent concurrent modifications and state corruption. This project is part of our comprehensive "SweetOps" approach towards DevOps.


Synchronized - A Swift generic wrapper type to help enforce thread-safe access to properties.

  •    Swift

A Swift genric wrapper type to help enforce thread-safe usage of stored properties. This is an idea that started with a post on my blog, and I followed up with a discussion about the Locking protocol.

dynalock - This is a small lock library written Go, which uses AWS DynamoDB as the data store.

  •    Go

This is a small K/V library written Go, which uses AWS DynamoDB as the data store. It supports create, read, update and delete (CRUD) for key/value pairs, and provides locks based on the sync.Lock API.