atomic_ops(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

atomic_ops(3c)

Standard C Library Functions                                    atomic_ops(3C)



NAME
       atomic_ops - atomic operations

SYNOPSIS
       #include <atomic.h>

DESCRIPTION
       This  collection  of functions provides atomic memory operations. There
       are 8 different classes of atomic operations:

       atomic_add(3C)   These functions provide an atomic addition of a signed
                        value to a variable.


       atomic_and(3C)   These  functions  provide an atomic logical 'and' of a
                        value to a variable.


       atomic_bits(3C)  These functions provide atomic bit setting and  clear‐
                        ing within a variable.


       atomic_cas(3C)   These  functions  provide  an  atomic  comparison of a
                        value with a variable. If  the  comparison  is  equal,
                        then  swap  in a new value for the variable, returning
                        the old value of the variable in either case.


       atomic_dec(3C)   These functions provide an atomic decrement on a vari‐
                        able.


       atomic_inc(3C)   These functions provide an atomic increment on a vari‐
                        able.


       atomic_or(3C)    These functions provide an atomic logical  'or'  of  a
                        value to a variable.


       atomic_swap(3C)  These functions provide an atomic swap of a value with
                        a variable, returning the old value of the variable.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelMT-Safe


SEE ALSO
       atomic_add(3C),    atomic_and(3C),   atomic_bits(3C),   atomic_cas(3C),
       atomic_dec(3C), atomic_inc(3C),  atomic_or(3C),  atomic_swap(3C),  mem‐
       bar_ops(3C), attributes(7)

NOTES
       Atomic  instructions  ensure  global  visibility of atomically-modified
       variables on completion. In a relaxed store order system, this does not
       guarantee  that  the visibility of other variables will be synchronized
       with the completion of the atomic instruction. If such  synchronization
       is  required,  memory  barrier  instructions  must  be  used.  See mem‐
       bar_ops(3C).


       Atomic instructions can be expensive since they require synchronization
       to  occur at a hardware level. This means they should be used with care
       to ensure that forcing hardware level synchronization occurs a  minimum
       number  of  times. For example, if you have several variables that need
       to be incremented as a group, and each needs  to  be  done  atomically,
       then  do  so with a mutex lock protecting all of them being incremented
       rather than using the atomic_inc(3C) operation on each of them.



Oracle Solaris 11.4               12 Aug 2004                   atomic_ops(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3