A concurrent garbage collector for C++