👤
Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

NetBSD 6.1.5 - man page for pserialize_destroy (netbsd section 9)

PSERIALIZE(9)			  BSD Kernel Developer's Manual 		    PSERIALIZE(9)

NAME
     pserialize -- passive serialization mechanism

SYNOPSIS
     #include <sys/pserialize.h>

     pserialize_t
     pserialize_create(void);

     void
     pserialize_destroy(pserialize_t psz);

     int
     pserialize_read_enter(void);

     void
     pserialize_read_exit(int s);

     void
     pserialize_perform(pserialize_t psz);

DESCRIPTION
     Passive serialization is a reader / writer synchronisation mechanism designed for lock-less
     read operations.  The read operations may happen from software interrupt at IPL_SOFTCLOCK.

FUNCTIONS
     pserialize_create()
	      Allocate a new synchronisation object.

     pserialize_destroy()
	      Destroy the synchronisation object.  No synchronisation activity should happen at
	      this point.

     pserialize_read_enter()
	      Enter the critical path of the reader side.  Returns an IPL value, which must be
	      passed to pserialize_read_exit(9).  Protected code path is not allowed to block.

     pserialize_read_exit()
	      Exit the critical path of the reader side.  Takes the IPL value returned by
	      pserialize_read_enter(9).

     pserialize_perform()
	      Perform the passive serialization on the writer side.  Passing of this function
	      ensures that no readers are in action.  Writers must be additionally serialized
	      with a separate mechanism, e.g.  mutex(9).  Operation blocks and it may only be
	      performed from thread context.

EXAMPLES
     Typical code fragment in the writer side:

	     mutex_enter(&writer_psz_lock);
	     /*
	      * Perform the updates (e.g. remove data items from a list).
	      */
	     ...
	     pserialize_perform(object->psz);
	     /*
	      * At this point it is safe to destroy old data items.
	      */
	     mutex_exit(&writer_psz_lock);

CODE REFERENCES
     The pserialize is implemented within the file sys/kern/subr_pserialize.c.

SEE ALSO
     membar_ops(3), condvar(9), mutex(9), rwlock(9)

     Hennessy, et al., Passive serialization in a multitasking environment, US Patent and
     Trademark Office, US Patent 4809168, February 28, 1989.

HISTORY
     Passive serialization mechanism first appeared in NetBSD 6.0.

BSD					  July 30, 2011 				      BSD


All times are GMT -4. The time now is 08:06 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password