Fix: set the health delta tcp timeout aware
[lttng-tools.git] / src / bin / lttng-sessiond / health.h
index 34d2052e5249f8ce145005cfb3dafe5275b67bf6..ebbc0cb0f7ccee5d08da37e32c16c396c8dd0bed 100644 (file)
@@ -44,6 +44,9 @@ enum health_type {
        HEALTH_TYPE_APP_REG             = 2,
        HEALTH_TYPE_KERNEL              = 3,
        HEALTH_TYPE_CONSUMER    = 4,
+       HEALTH_TYPE_HT_CLEANUP          = 5,
+       HEALTH_TYPE_APP_MANAGE_NOTIFY   = 6,
+       HEALTH_TYPE_APP_REG_DISPATCH    = 7,
 
        HEALTH_NUM_TYPE,
 };
@@ -74,11 +77,30 @@ struct health_state {
 extern DECLARE_URCU_TLS(struct health_state, health_state);
 
 /*
- * Update current counter by 1 to indicate that the thread entered or
- * left a blocking state caused by a poll().
+ * Update current counter by 1 to indicate that the thread entered or left a
+ * blocking state caused by a poll(). If the counter's value is not an even
+ * number (meaning a code execution flow), an assert() is raised.
  */
-static inline void health_poll_update(void)
+static inline void health_poll_entry(void)
 {
+       /* Code MUST be in code execution state which is an even number. */
+       assert(!(uatomic_read(&URCU_TLS(health_state).current)
+                               & HEALTH_POLL_VALUE));
+
+       uatomic_add(&URCU_TLS(health_state).current, HEALTH_POLL_VALUE);
+}
+
+/*
+ * Update current counter by 1 indicating the exit of a poll or blocking call.
+ * If the counter's value is not an odd number (a poll execution), an assert()
+ * is raised.
+ */
+static inline void health_poll_exit(void)
+{
+       /* Code MUST be in poll execution state which is an odd number. */
+       assert(uatomic_read(&URCU_TLS(health_state).current)
+                               & HEALTH_POLL_VALUE);
+
        uatomic_add(&URCU_TLS(health_state).current, HEALTH_POLL_VALUE);
 }
 
@@ -102,5 +124,6 @@ static inline void health_error(void)
 int health_check_state(enum health_type type);
 void health_register(enum health_type type);
 void health_unregister(void);
+void health_init(void);
 
 #endif /* _HEALTH_H */
This page took 0.02557 seconds and 5 git commands to generate.