17     m_mask(cache->fullSize(), false), m_waitNeeded(false) {}
 
   20   if(m_waitNeeded.load(std::memory_order_acquire)) 
wait();
 
   27     if(m_waitNeeded.load(std::memory_order_acquire)) 
wait();
 
   33     if(m_waitNeeded.load(std::memory_order_acquire)) 
wait();
 
   34     return m_map.cbegin();
 
   38   if(m_waitNeeded.load(std::memory_order_acquire)) 
wait();
 
   40    if(itr!= m_map.end() && itr->first==hashId) 
return itr;
 
   46     std::scoped_lock 
lock (m_waitMutex);
 
   47     if(m_waitNeeded.load(std::memory_order_acquire) == 
false) 
return;
 
   50     while(!m_waitlist.empty()) {
 
   51         IdentifierHash 
hash = m_waitlist.back();
 
   53         const void* 
ptr = cacheLink->waitFor(
hash);
 
   54         if(
ptr == ABORTstate) {
 
   57         m_waitlist.pop_back();
 
   60     for(
size_t i =0;
i<m_mask.size();
i++){
 
   65     m_waitNeeded.store(
false, std::memory_order_seq_cst);
 
   71     if(!m_waitlist.empty()) m_waitNeeded.store(
true, std::memory_order_relaxed);
 
   74            m_mask[hashId] = 
true;
 
   75            m_waitNeeded.store(
true, std::memory_order_relaxed);
 
   88     m_mask[hashId] = 
true;
 
   89     m_waitNeeded.store(
true, std::memory_order_relaxed);
 
   94     if(m_waitNeeded.load(std::memory_order_acquire)) 
wait();
 
   95     std::vector<IdentifierHash> 
ids;
 
   96     ids.reserve(m_map.size());
 
   97     for(
auto &
x : m_map) {
 
   98         ids.emplace_back(
x.first);
 
  104     if(m_waitNeeded.load(std::memory_order_acquire)) 
wait();
 
  109     if(m_waitNeeded.load(std::memory_order_relaxed)) 
wait();
 
  112     m_waitNeeded.store(
true, std::memory_order_relaxed);
 
  118     if(
ptr) { m_mask[hashId] =
true; m_waitNeeded.store(
true, std::memory_order_relaxed); }
 
  119     return StatusCode::SUCCESS;
 
  123     throw std::runtime_error(
"Not implemented");
 
  132     m_mask[hashId] = 
true; 
 
  133     m_waitNeeded.store(
true, std::memory_order_relaxed);
 
  134     return ptr == cacheinserted.second;
 
  138     if(hashId < m_mask.size() and m_mask[hashId]) {
 
  148       throw std::runtime_error(
"IDC WARNING Deletion shouldn't occur in addLock paradigm");
 
  150     m_mask[hashId] = 
true; 
 
  151     m_waitNeeded.store(
true, std::memory_order_relaxed);
 
  152     return StatusCode::SUCCESS;
 
  156     throw std::runtime_error(
"Do not remove things from an online IDC");