remove shared memory indicator member, use unique_ptr for barriers