both `PointerBarrier` instances (this one and the one from the GC collector) seem very similar; shouldn't this be extracted into a class ?