aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/iomgr/lockfree_event.cc
diff options
context:
space:
mode:
authorGravatar yang-g <yangg@google.com>2017-11-17 17:15:37 -0800
committerGravatar yang-g <yangg@google.com>2017-11-17 17:15:37 -0800
commit26521b38d235c9587ed391e285a3f5d34979df75 (patch)
treef764593dc18075eb3f05fd76c810898d9136fbe7 /src/core/lib/iomgr/lockfree_event.cc
parent90c8cf6acc698ddef1d2da3b205ad8d0014b52fa (diff)
Avoid calling dtor on grpc_fd before putting it in freelist
Diffstat (limited to 'src/core/lib/iomgr/lockfree_event.cc')
-rw-r--r--src/core/lib/iomgr/lockfree_event.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/lib/iomgr/lockfree_event.cc b/src/core/lib/iomgr/lockfree_event.cc
index 40e2ed6219..57a81fb5b2 100644
--- a/src/core/lib/iomgr/lockfree_event.cc
+++ b/src/core/lib/iomgr/lockfree_event.cc
@@ -57,7 +57,9 @@ extern grpc_tracer_flag grpc_polling_trace;
namespace grpc_core {
-LockfreeEvent::LockfreeEvent() {
+LockfreeEvent::LockfreeEvent() { Init(); }
+
+void LockfreeEvent::Init() {
/* Perform an atomic store to start the state machine.
Note carefully that LockfreeEvent *MAY* be used whilst in a destroyed
@@ -67,7 +69,7 @@ LockfreeEvent::LockfreeEvent() {
gpr_atm_no_barrier_store(&state_, kClosureNotReady);
}
-LockfreeEvent::~LockfreeEvent() {
+void LockfreeEvent::Destroy() {
gpr_atm curr;
do {
curr = gpr_atm_no_barrier_load(&state_);