Skip to content

spider-gazelle/readers-writer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Readers Writer Lock

CI

Allows any number of concurrent readers, but only one concurrent writer (And while the "write" lock is taken, no read locks can be obtained either) Access is fair. (read, write, read, write requests will occur in the order they arrived.)

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      rwlock:
        github: spider-gazelle/readers-writer
  2. Run shards install

Usage

require "rwlock"

balance = 10
rwlock = RWLock.new

# Reading the balance
rwlock.read { puts balance.inspect }

# Modifying
rwlock.write { balance += 10 }
rwlock.synchronize { balance += 10 }

# Reentrant
rwlock.read do
  rwlock.write { balance = 100 } if balance > 100
end