コード例 #1
0
ファイル: ref_counted.cpp プロジェクト: CCJY/actor-framework
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);
  }
}
コード例 #2
0
ファイル: ref_counted.hpp プロジェクト: alepharchives/libcppa
 /**
  * @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(); }