005e0d6b218ed79f16bbfd7aad242ff763f80478
[libcds.git] / cds / gc / hp.h
1 //$$CDS-header$$
2
3 #ifndef CDSLIB_GC_HP_H
4 #define CDSLIB_GC_HP_H
5
6 #include <cds/gc/impl/hp_decl.h>
7 #include <cds/gc/impl/hp_impl.h>
8 #include <cds/details/lib.h>
9
10 /**
11     @page cds_garbage_collectors_comparison GC comparison
12     @ingroup cds_garbage_collector
13
14     <table>
15         <tr>
16             <th>Feature</th>
17             <th>%cds::gc::HP</th>
18             <th>%cds::gc::DHP</th>
19         </tr>
20         <tr>
21             <td>Max number of guarded (hazard) pointers per thread</td>
22             <td>limited (specifies in GC object ctor)</td>
23             <td>unlimited (dynamically allocated when needed)</td>
24         </tr>
25         <tr>
26             <td>Max number of retired pointers<sup>1</sup></td>
27             <td>bounded</td>
28             <td>bounded</td>
29         </tr>
30         <tr>
31             <td>Array of retired pointers</td>
32             <td>preallocated for each thread, size is limited</td>
33             <td>global for the entire process, unlimited (dynamically allocated when needed)</td>
34         </tr>
35     </table>
36
37     <sup>1</sup>Unbounded count of retired pointer means a possibility of memory exhaustion.
38 */
39
40 namespace cds {
41
42     /// Different safe memory reclamation schemas (garbage collectors)
43     /** @ingroup cds_garbage_collector
44
45         This namespace specifies different safe memory reclamation (SMR) algorithms.
46         See \ref cds_garbage_collector "Garbage collectors"
47     */
48     namespace gc {
49     } // namespace gc
50
51 } // namespace cds
52
53
54 #endif  // #ifndef CDSLIB_GC_HP_H