Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

By the use of Ticketlocks, it is possible to serialize blocks of code that might run parallel on multiple CPU cores. More...

#include <sync/ticketlock.h>

Public Member Functions

 Ticketlock ()
 Constructor.
 
void lock ()
 Enters the critical area. In case the area is already locked, lock() will actively wait for the area can be entered.
 
void unlock ()
 Unblocks the critical area.
 

Detailed Description

By the use of Ticketlocks, it is possible to serialize blocks of code that might run parallel on multiple CPU cores.

Synchronization is implemented using a lock and a ticket variable. Once a thread tries to enter the critical area, it obtains a ticket by atomic increment of the ticket variable and waits until the lock variable is equal to its ticket. When a thread leaves the critical area, it increments the lock variable by one and thereby allows the next thread to enter the critical area.

Atomic Builtins in GCC manual


The documentation for this class was generated from the following file: