summaryrefslogtreecommitdiffstats
path: root/lib/frr_pthread.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/frr_pthread.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/frr_pthread.h b/lib/frr_pthread.h
index 1e1b8d7..bb751b7 100644
--- a/lib/frr_pthread.h
+++ b/lib/frr_pthread.h
@@ -47,6 +47,17 @@ struct frr_pthread {
struct frr_pthread_attr attr;
/*
+ * Startup serialization: newly-started pthreads wait at a point
+ * very early in life so that there isn't a race with the
+ * starting pthread. The OS 'start' apis don't make any guarantees
+ * about which pthread runs first - the existing pthread that has
+ * called the 'start' api, or the new pthread that is just starting.
+ */
+ pthread_cond_t startup_cond;
+ pthread_mutex_t startup_cond_mtx;
+ atomic_bool started;
+
+ /*
* Notification mechanism for allowing pthreads to notify their parents
* when they are ready to do work. This mechanism has two associated
* functions: