summaryrefslogtreecommitdiff
path: root/lib/thread.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/thread.h')
-rw-r--r--lib/thread.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/thread.h b/lib/thread.h
index 70090cf784..ec774a6543 100644
--- a/lib/thread.h
+++ b/lib/thread.h
@@ -27,6 +27,10 @@
#include "monotime.h"
#include "frratomic.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct rusage_t {
struct rusage cpu;
struct timeval real;
@@ -119,13 +123,13 @@ struct thread {
struct cpu_thread_history {
int (*func)(struct thread *);
- _Atomic unsigned int total_calls;
- _Atomic unsigned int total_active;
+ atomic_uint_fast32_t total_calls;
+ atomic_uint_fast32_t total_active;
struct time_stats {
- _Atomic unsigned long total, max;
+ atomic_size_t total, max;
} real;
struct time_stats cpu;
- _Atomic uint8_t types;
+ atomic_uint_fast32_t types;
const char *funcname;
};
@@ -217,6 +221,7 @@ extern struct thread *thread_fetch(struct thread_master *, struct thread *);
extern void thread_call(struct thread *);
extern unsigned long thread_timer_remain_second(struct thread *);
extern struct timeval thread_timer_remain(struct thread *);
+extern unsigned long thread_timer_remain_msec(struct thread *);
extern int thread_should_yield(struct thread *);
/* set yield time for thread */
extern void thread_set_yield_time(struct thread *, unsigned long);
@@ -232,4 +237,8 @@ extern unsigned long thread_consumed_time(RUSAGE_T *after, RUSAGE_T *before,
/* only for use in logging functions! */
extern pthread_key_t thread_current;
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _ZEBRA_THREAD_H */