critical man page on FreeBSD

Man page or keyword search:  
man Server   9747 pages
apropos Keyword Search (all sections)
Output format
FreeBSD logo
[printable version]

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

     critical_enter, critical_exit — enter and exit a critical region

     #include <sys/param.h>
     #include <sys/systm.h>



     These functions are used to prevent preemption in a critical region of
     code.  All that is guaranteed is that the thread currently executing on a
     CPU will not be preempted.	 Specifically, a thread in a critical region
     will not migrate to another CPU while it is in a critical region.	The
     current CPU may still trigger faults and exceptions during a critical
     section; however, these faults are usually fatal.

     The critical_enter() and critical_exit() functions manage a per-thread
     counter to handle nested critical sections.  If a thread is made runnable
     that would normally preempt the current thread while the current thread
     is in a critical section, then the preemption will be deferred until the
     current thread exits the outermost critical section.

     Note that these functions are not required to provide any inter-CPU syn‐
     chronization, data protection, or memory ordering guarantees and thus
     should not be used to protect shared data structures.

     These functions should be used with care as an infinite loop within a
     critical region will deadlock the CPU.  Also, they should not be inter‐
     locked with operations on mutexes, sx locks, semaphores, or other syn‐
     chronization primitives.  One exception to this is that spin mutexes
     include a critical section, so in certain cases critical sections may be
     interlocked with spin mutexes.

     These functions were introduced in FreeBSD 5.0.

BSD				October 5, 2005				   BSD

List of man pages available for FreeBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net