]>
Commit | Line | Data |
---|---|---|
dae2800a BP |
1 | ///////////////////////////////////////////////////////////////////////////// |
2 | // Name: funcmacro_atomic.h | |
3 | // Purpose: Atomic Operation function and macro group docs | |
4 | // Author: wxWidgets team | |
5 | // RCS-ID: $Id: funcmacro_gdi.h 52454 2008-03-12 19:08:48Z BP $ | |
6 | // Licence: wxWindows license | |
7 | ///////////////////////////////////////////////////////////////////////////// | |
8 | ||
9 | /** | |
10 | ||
11 | @defgroup group_funcmacro_atomic Atomic Operations | |
12 | @ingroup group_funcmacro | |
13 | ||
14 | When using multi-threaded applications, it is often required to access or | |
15 | modify memory which is shared between threads. Atomic integer and pointer | |
16 | operations are an efficient way to handle this issue (another, less efficient, | |
1ba0de2e BP |
17 | way is to use a wxMutex or wxCriticalSection). A native implementation exists |
18 | for Windows, Linux, Solaris and Mac OS X; for others, a wxCriticalSection is | |
19 | used to protect the data. | |
dae2800a | 20 | |
1ba0de2e BP |
21 | One particular application is reference counting (used by so-called |
22 | @ref group_class_smartpointers "smart pointers"). | |
dae2800a BP |
23 | |
24 | You should define your variable with the type wxAtomicInt in order to apply | |
25 | atomic operations to it. | |
26 | ||
dae2800a BP |
27 | */ |
28 |