Lines Matching refs:sibling

2542 	struct tsync_sibling sibling[TSYNC_SIBLINGS];
2564 memset(&self->sibling, 0, sizeof(self->sibling));
2579 self->sibling[0].tid = 0;
2580 self->sibling[0].cond = &self->cond;
2581 self->sibling[0].started = &self->started;
2582 self->sibling[0].mutex = &self->mutex;
2583 self->sibling[0].diverge = 0;
2584 self->sibling[0].num_waits = 1;
2585 self->sibling[0].prog = &self->root_prog;
2586 self->sibling[0].metadata = _metadata;
2587 self->sibling[1].tid = 0;
2588 self->sibling[1].cond = &self->cond;
2589 self->sibling[1].started = &self->started;
2590 self->sibling[1].mutex = &self->mutex;
2591 self->sibling[1].diverge = 0;
2592 self->sibling[1].prog = &self->root_prog;
2593 self->sibling[1].num_waits = 1;
2594 self->sibling[1].metadata = _metadata;
2607 struct tsync_sibling *s = &self->sibling[sib];
2654 void tsync_start_sibling(struct tsync_sibling *sibling)
2656 pthread_create(&sibling->tid, NULL, tsync_sibling, (void *)sibling);
2688 self->sibling[0].diverge = 1;
2689 tsync_start_sibling(&self->sibling[0]);
2690 tsync_start_sibling(&self->sibling[1]);
2704 /* Ensure diverging sibling failed to call prctl. */
2705 PTHREAD_JOIN(self->sibling[0].tid, &status);
2707 PTHREAD_JOIN(self->sibling[1].tid, &status);
2727 tsync_start_sibling(&self->sibling[0]);
2728 tsync_start_sibling(&self->sibling[1]);
2747 PTHREAD_JOIN(self->sibling[0].tid, &status);
2749 PTHREAD_JOIN(self->sibling[1].tid, &status);
2758 tsync_start_sibling(&self->sibling[0]);
2759 tsync_start_sibling(&self->sibling[1]);
2773 PTHREAD_JOIN(self->sibling[0].tid, &status);
2775 PTHREAD_JOIN(self->sibling[1].tid, &status);
2785 tsync_start_sibling(&self->sibling[0]);
2786 tsync_start_sibling(&self->sibling[1]);
2813 PTHREAD_JOIN(self->sibling[0].tid, &status);
2815 PTHREAD_JOIN(self->sibling[1].tid, &status);
2835 self->sibling[0].diverge = 1;
2836 tsync_start_sibling(&self->sibling[0]);
2837 tsync_start_sibling(&self->sibling[1]);
2846 ASSERT_EQ(self->sibling[0].system_tid, ret) {
2847 TH_LOG("Did not fail on diverged sibling.");
2858 PTHREAD_JOIN(self->sibling[0].tid, &status);
2860 PTHREAD_JOIN(self->sibling[1].tid, &status);
2880 self->sibling[0].diverge = 1;
2881 tsync_start_sibling(&self->sibling[0]);
2882 tsync_start_sibling(&self->sibling[1]);
2893 TH_LOG("Did not return ESRCH for diverged sibling.");
2896 TH_LOG("Did not fail on diverged sibling.");
2907 PTHREAD_JOIN(self->sibling[0].tid, &status);
2909 PTHREAD_JOIN(self->sibling[1].tid, &status);
2929 self->sibling[0].diverge = 1;
2930 tsync_start_sibling(&self->sibling[0]);
2931 tsync_start_sibling(&self->sibling[1]);
2948 ASSERT_EQ(ret, self->sibling[0].system_tid) {
2949 TH_LOG("Did not fail on diverged sibling.");
2952 if (ret == self->sibling[0].system_tid)
2960 self->sibling[!sib].num_waits += 1;
2967 PTHREAD_JOIN(self->sibling[sib].tid, &status);
2970 while (!kill(self->sibling[sib].system_tid, 0))
2972 /* Switch to the remaining sibling */
2978 TH_LOG("Expected the remaining sibling to sync");
2983 /* If remaining sibling didn't have a chance to wake up during
2986 if (self->sibling[sib].num_waits > 1)
2987 self->sibling[sib].num_waits = 1;
2992 PTHREAD_JOIN(self->sibling[sib].tid, &status);
2995 while (!kill(self->sibling[sib].system_tid, 0))
3690 * Check that a pid in a sibling (i.e. unrelated) namespace shows up as 0, i.e.
3726 /* Create the sibling ns, and sibling in it. */