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

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. More...
 
void lock ()
 Enters the critical area. In case the area is already locked, lock() will actively wait for the area can be entered. More...
 
void unlock ()
 Unblocks the critical area. More...
 

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

Constructor & Destructor Documentation

◆ Ticketlock()

Ticketlock::Ticketlock ( )
inline

Constructor.

Todo:
Complete Constructor (for MPStuBS)

Member Function Documentation

◆ lock()

void Ticketlock::lock ( )
inline

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

See also
Core::pause()
Todo:
Implement Method (for MPStuBS)

◆ unlock()

void Ticketlock::unlock ( )
inline

Unblocks the critical area.

Todo:
Implement Method (for MPStuBS)

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