Example #1
0
void ref_counted::deref() noexcept {
  if (unique()) {
    request_deletion(false);
    return;
  }
  if (m_rc.fetch_sub(1, std::memory_order_acq_rel) == 1) {
    request_deletion(true);
  }
}
Example #2
0
 /**
  * @brief Decreases reference count by one and calls
  *        @p request_deletion when it drops to zero.
  */
 inline void deref() { if (--m_rc == 0) request_deletion(); }