virtual Status Initialize()

in src/common/garbage_list.h [126:148]


  virtual Status Initialize(EpochManager* epoch_manager,
      size_t item_count = 128 * 1024) {
    if(epoch_manager_) return Status::OK();

    if(!epoch_manager) return Status::InvalidArgument("Null pointer");

    if(!item_count || !IS_POWER_OF_TWO(item_count)) {
      return Status::InvalidArgument("items not a power of two");
    }

    size_t nItemArraySize = sizeof(*items_) * item_count;
    posix_memalign((void **)&items_, 64, nItemArraySize);
    if (!items_)
      return Status::Corruption("Out of memory");

    for(size_t i = 0; i < item_count; ++i) new(&items_[i]) Item{};

    item_count_ = item_count;
    tail_ = 0;
    epoch_manager_ = epoch_manager;

    return Status::OK();
  }