Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NAME
       ck_pflock_init,	    ck_pflock_write_lock,      ck_pflock_write_unlock,
       ck_pflock_read_lock, ck_pflock_read_unlock, --  centralized  phase-fair
       reader-writer locks

LIBRARY
       Concurrency Kit (libck, -lck)

SYNOPSIS
       #include	<ck_pflock.h>

       ck_pflock_t lock	= CK_PFLOCK_INITIALIZER;

       void
       ck_pflock_init(ck_pflock_t *lock);

       void
       ck_pflock_write_lock(ck_pflock_t	*lock);

       void
       ck_pflock_write_unlock(ck_pflock_t *lock);

       void
       ck_pflock_read_lock(ck_pflock_t *lock);

       void
       ck_pflock_read_unlock(ck_pflock_t *lock);

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

EXAMPLE
	     #include <ck_pflock.h>

	     static ck_pflock_t	lock = CK_TFLOCK_INITIALIZER;

	     static void
	     reader(void)
	     {

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

		     return;
	     }

	     static void
	     writer(void)
	     {

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

		     return;
	     }

SEE ALSO
       ck_brlock(3), ck_rwlock(3), ck_tflock(3), ck_swlock(3)

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

				April 22, 2014.			  ck_pflock(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ck_pflock&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help