GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
ck_tflock(3) FreeBSD Library Functions Manual ck_tflock(3)

ck_tflock_ticket_init, ck_tflock_ticket_write_lock, ck_tflock_ticket_write_unlock, ck_tflock_ticket_read_lock, ck_tflock_ticket_read_unlock, —
centralized task-fair reader-writer locks

Concurrency Kit (libck, -lck)

#include <ck_tflock.h>

ck_tflock_ticket_t lock = CK_TFLOCK_TICKET_INITIALIZER;


void
ck_tflock_ticket_init(ck_tflock_ticket_t *lock);

void
ck_tflock_ticket_write_lock(ck_tflock_ticket_t *lock);

void
ck_tflock_ticket_write_unlock(ck_tflock_ticket_t *lock);

void
ck_tflock_ticket_read_lock(ck_tflock_ticket_t *lock);

void
ck_tflock_ticket_read_unlock(ck_tflock_ticket_t *lock);

This is a centralized task-fair reader-writer lock. It requires little space overhead and has a low latency fast path.

#include <ck_tflock.h>

static ck_tflock_ticket_t lock = CK_TFLOCK_INITIALIZER;

static void
reader(void)
{

	for (;;) {
		ck_tflock_ticket_read_lock(&lock);
		/* Read-side critical section. */
		ck_tflock_ticket_read_unlock(&lock);
	}

	return;
}

static void
writer(void)
{

	for (;;) {
		ck_tflock_ticket_write_lock(&lock);
		/* Write-side critical section. */
		ck_tflock_ticket_write_unlock(&lock);
	}

	return;
}

ck_brlock(3), ck_rwlock(3), ck_pflock(3), ck_swlock(3)

Additional information available at http://concurrencykit.org/

April 22, 2014.

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.