} /* end deinit() */
+
+static void sync_poll_loop()
+{
+ if (THREAD_NO_SYNC())
+ return;
+
+ THREAD_ENTER_SYNC();
+
+ if (!THREAD_NEED_SYNC())
+ goto exit;
+
+ /* *** { */
+ /* Put here all sync functions */
+
+
+ /* *** } */
+ exit:
+ THREAD_EXIT_SYNC();
+}
+
/* Runs the polling loop */
static void run_poll_loop()
{
/* Commit server status changes */
servers_update_status();
+
+ /* Synchronize all polling loops */
+ sync_poll_loop();
+
}
}
}
}
+ THREAD_SYNC_ENABLE();
run_poll_loop();
list_for_each_entry(ptdf, &per_thread_deinit_list, list)
pthread_t *threads = calloc(global.nbthread, sizeof(pthread_t));
int i;
+ THREAD_SYNC_INIT((1UL << global.nbthread) - 1);
for (i = 0; i < global.nbthread; i++) {
tids[i] = i;
pthread_create(&threads[i], NULL, &run_thread_poll_loop, &tids[i]);