Split Reference Counting

In lock-free data structures, split reference counting uses two separate counters (external and internal) for memory reclamation. Why split instead of one counter?

A

The internal counter is for the current thread and the external counter is for all other threads

B

Two counters use less memory than one due to alignment

C

With one count on the node, the node could be freed before a thread increments it

D

One counter tracks readers and the other tracks writers