diff options
author | David G. Quintas <dgq@google.com> | 2017-11-08 11:01:59 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-08 11:01:59 -0800 |
commit | 332c7e402ab5324d4d8c26aa58780cddc98c63dc (patch) | |
tree | a39fab3e32412afeb41a36a7231b828cb8807129 /src/core/lib/iomgr/lockfree_event.h | |
parent | a4265d464c54cbff6946a5d7b69e3a4b8358be68 (diff) |
Revert "Class-ify lockfree event"
Diffstat (limited to 'src/core/lib/iomgr/lockfree_event.h')
-rw-r--r-- | src/core/lib/iomgr/lockfree_event.h | 44 |
1 files changed, 19 insertions, 25 deletions
diff --git a/src/core/lib/iomgr/lockfree_event.h b/src/core/lib/iomgr/lockfree_event.h index 47d0089c01..75526d6b9f 100644 --- a/src/core/lib/iomgr/lockfree_event.h +++ b/src/core/lib/iomgr/lockfree_event.h @@ -25,30 +25,24 @@ #include "src/core/lib/iomgr/exec_ctx.h" -namespace grpc_core { - -class LockfreeEvent { - public: - LockfreeEvent() = default; - ~LockfreeEvent(); - - LockfreeEvent(const LockfreeEvent&) = delete; - LockfreeEvent& operator=(const LockfreeEvent&) = delete; - - bool IsShutdown() const { - return (gpr_atm_no_barrier_load(&state_) & kShutdownBit) != 0; - } - - void NotifyOn(grpc_exec_ctx* exec_ctx, grpc_closure* closure); - bool SetShutdown(grpc_exec_ctx* exec_ctx, grpc_error* error); - void SetReady(grpc_exec_ctx* exec_ctx); - - private: - enum State { kClosureNotReady = 0, kClosureReady = 2, kShutdownBit = 1 }; - - gpr_atm state_ = kClosureNotReady; -}; - -} // namespace grpc_core +#ifdef __cplusplus +extern "C" { +#endif + +void grpc_lfev_init(gpr_atm* state); +void grpc_lfev_destroy(gpr_atm* state); +bool grpc_lfev_is_shutdown(gpr_atm* state); + +void grpc_lfev_notify_on(grpc_exec_ctx* exec_ctx, gpr_atm* state, + grpc_closure* closure, const char* variable); +/* Returns true on first successful shutdown */ +bool grpc_lfev_set_shutdown(grpc_exec_ctx* exec_ctx, gpr_atm* state, + grpc_error* shutdown_err); +void grpc_lfev_set_ready(grpc_exec_ctx* exec_ctx, gpr_atm* state, + const char* variable); + +#ifdef __cplusplus +} +#endif #endif /* GRPC_CORE_LIB_IOMGR_LOCKFREE_EVENT_H */ |