#lock #system #waiting #separate #request #ticketed

ticketed_lock

Ticketed lock system - allows one to separate lock request from the actual waiting

3 releases (breaking)

0.3.0 Jan 25, 2021
0.2.0 Mar 4, 2017
0.1.0 Mar 3, 2017

#9 in #separate

Download history 106/week @ 2024-04-01 16/week @ 2024-04-08 24/week @ 2024-04-15 23/week @ 2024-04-22 20/week @ 2024-04-29 16/week @ 2024-05-06 24/week @ 2024-05-13 48/week @ 2024-05-20 60/week @ 2024-05-27 30/week @ 2024-06-03 36/week @ 2024-06-10 19/week @ 2024-06-17 25/week @ 2024-06-24 10/week @ 2024-07-01 14/week @ 2024-07-08 22/week @ 2024-07-15

73 downloads per month

Apache-2.0

11KB
256 lines

Ticketed lock.

Ticketed lock is similar to RwLock, except that the acquisition of the lock is split:

  1. obtaining a ticket, which has to be done on the same thread as the locked storage
  2. waiting on a ticket, which puts the current thread to sleep until the ticket is due. That moment comes when all the previous tickets are processed.
  3. working with the data behind a read/lock guard
  4. when the guard is freed, it allows the following tickets to become active

A ticket can be moved between threads or even just lost. Consecutive read-only tickets do not guarantee a particular lock order. All the ticket counting is done based on Arc primitives, and the only unsafe code that this library has is for accessing the actual data behind a guard.

Dependencies

~220KB