diff options
author | 2017-11-17 17:15:37 -0800 | |
---|---|---|
committer | 2017-11-17 17:15:37 -0800 | |
commit | 26521b38d235c9587ed391e285a3f5d34979df75 (patch) | |
tree | f764593dc18075eb3f05fd76c810898d9136fbe7 /src/core/lib/iomgr/lockfree_event.cc | |
parent | 90c8cf6acc698ddef1d2da3b205ad8d0014b52fa (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.cc | 6 |
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_); |