|Feature ||cds::gc::HP ||cds::gc::HRC ||cds::gc::PTB |
|Implementation quality ||stable ||unstable ||stable |
|Performance rank (1 - slowest, 5 - fastest) ||5 ||1 ||4 |
|Max number of guarded (hazard) pointers per thread ||limited (specifies in GC object ctor) ||limited (specifies in GC object ctor) ||unlimited (dynamically allocated when needed) |
|Max number of retired pointers1 ||bounded ||bounded ||bounded |
|Array of retired pointers ||preallocated for each thread, limited in size ||preallocated for each thread, limited in size ||global for the entire process, unlimited (dynamically allocated when needed) |
|Support direct pointer to item of lock-free container (useful for iterators) ||not supported ||potentially supported (not implemented) ||not supported |
Unbounded count of retired pointer means a possibility of memory exhaustion.