aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/iomgr/lockfree_event.h
diff options
context:
space:
mode:
authorGravatar David G. Quintas <dgq@google.com>2017-11-08 11:01:59 -0800
committerGravatar GitHub <noreply@github.com>2017-11-08 11:01:59 -0800
commit332c7e402ab5324d4d8c26aa58780cddc98c63dc (patch)
treea39fab3e32412afeb41a36a7231b828cb8807129 /src/core/lib/iomgr/lockfree_event.h
parenta4265d464c54cbff6946a5d7b69e3a4b8358be68 (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.h44
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 */