int (*parse_arg_ext) (char *) = NULL;
pthread_barrier_t *barrier = NULL;
+pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_t test = PTHREAD_MUTEX_INITIALIZER;
volatile int shared_flag = 0;
ts_t ts1, ts2;
{
pthread_barrier_wait (barrier);
+ printf ("Sending ping...\n");
+
+ pthread_mutex_lock (&test);
+ usleep (TIMER);
+
+ for (int i = 0; i < nb_measurements; i++) {
+
+ pthread_mutex_lock (&mutex);
+ pthread_mutex_unlock (&mutex);
+
+ usleep (TIMER / 2);
- while (try < nb_measurements) {
- pthread_mutex_lock (&test);
- usleep (TIMER);
- shared_flag = 1;
- sys_timestamp (&ts1);
pthread_mutex_unlock (&test);
- //shared_flag = 0;
- usleep (TIMER);
+ sys_timestamp (&ts1);
+
+ usleep (TIMER/2);
+ pthread_mutex_lock (&test);
}
pthread_exit (NULL);
pthread_barrier_wait (barrier);
- while (try < nb_measurements) {
- ts_t ts;
- sys_timestamp (&ts);
+ for (int i = 0; i < nb_measurements; i++) {
+
+ pthread_mutex_lock (&mutex);
+ usleep (TIMER);
+ pthread_mutex_unlock (&mutex);
+
pthread_mutex_lock (&test);
- if (shared_flag) {
- sys_timestamp (&ts2);
- if (diff_timestamp (&ts2, &ts) < (9 * TIMER / 10)) {
- nbtoofast++;
- } else {
- deltas[try++] = diff_timestamp (&ts2, &ts1);
- }
- shared_flag = 0;
- }
+ sys_timestamp (&ts2);
+ deltas[i] = diff_timestamp (&ts2, &ts1);
pthread_mutex_unlock (&test);
}