---
name: "ck_tflock"
section: "3"
platform: "linux"
package: "libck-dev"
version: "0.7.2-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ck_tflock"
---

# ck\_tflock(3)

centralized task-fair reader-writer locks

## NAME

**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

## LIBRARY

Concurrency Kit (libck, -lck)

## SYNOPSIS

**#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*);

## DESCRIPTION

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

## EXAMPLE

```
#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;
}
```

## SEE ALSO

[ck\_brlock(3)](/ck_brlock/3.md), [ck\_rwlock(3)](/ck_rwlock/3.md), [ck\_pflock(3)](/ck_pflock/3.md), [ck\_swlock(3)](/ck_swlock/3.md)

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