Lines Matching refs:sibling

2476 	struct tsync_sibling sibling[TSYNC_SIBLINGS];
2498 memset(&self->sibling, 0, sizeof(self->sibling));
2513 self->sibling[0].tid = 0;
2514 self->sibling[0].cond = &self->cond;
2515 self->sibling[0].started = &self->started;
2516 self->sibling[0].mutex = &self->mutex;
2517 self->sibling[0].diverge = 0;
2518 self->sibling[0].num_waits = 1;
2519 self->sibling[0].prog = &self->root_prog;
2520 self->sibling[0].metadata = _metadata;
2521 self->sibling[1].tid = 0;
2522 self->sibling[1].cond = &self->cond;
2523 self->sibling[1].started = &self->started;
2524 self->sibling[1].mutex = &self->mutex;
2525 self->sibling[1].diverge = 0;
2526 self->sibling[1].prog = &self->root_prog;
2527 self->sibling[1].num_waits = 1;
2528 self->sibling[1].metadata = _metadata;
2541 struct tsync_sibling *s = &self->sibling[sib];
2588 void tsync_start_sibling(struct tsync_sibling *sibling)
2590 pthread_create(&sibling->tid, NULL, tsync_sibling, (void *)sibling);
2622 self->sibling[0].diverge = 1;
2623 tsync_start_sibling(&self->sibling[0]);
2624 tsync_start_sibling(&self->sibling[1]);
2638 /* Ensure diverging sibling failed to call prctl. */
2639 PTHREAD_JOIN(self->sibling[0].tid, &status);
2641 PTHREAD_JOIN(self->sibling[1].tid, &status);
2661 tsync_start_sibling(&self->sibling[0]);
2662 tsync_start_sibling(&self->sibling[1]);
2681 PTHREAD_JOIN(self->sibling[0].tid, &status);
2683 PTHREAD_JOIN(self->sibling[1].tid, &status);
2692 tsync_start_sibling(&self->sibling[0]);
2693 tsync_start_sibling(&self->sibling[1]);
2707 PTHREAD_JOIN(self->sibling[0].tid, &status);
2709 PTHREAD_JOIN(self->sibling[1].tid, &status);
2719 tsync_start_sibling(&self->sibling[0]);
2720 tsync_start_sibling(&self->sibling[1]);
2747 PTHREAD_JOIN(self->sibling[0].tid, &status);
2749 PTHREAD_JOIN(self->sibling[1].tid, &status);
2769 self->sibling[0].diverge = 1;
2770 tsync_start_sibling(&self->sibling[0]);
2771 tsync_start_sibling(&self->sibling[1]);
2780 ASSERT_EQ(self->sibling[0].system_tid, ret) {
2781 TH_LOG("Did not fail on diverged sibling.");
2792 PTHREAD_JOIN(self->sibling[0].tid, &status);
2794 PTHREAD_JOIN(self->sibling[1].tid, &status);
2814 self->sibling[0].diverge = 1;
2815 tsync_start_sibling(&self->sibling[0]);
2816 tsync_start_sibling(&self->sibling[1]);
2827 TH_LOG("Did not return ESRCH for diverged sibling.");
2830 TH_LOG("Did not fail on diverged sibling.");
2841 PTHREAD_JOIN(self->sibling[0].tid, &status);
2843 PTHREAD_JOIN(self->sibling[1].tid, &status);
2863 self->sibling[0].diverge = 1;
2864 tsync_start_sibling(&self->sibling[0]);
2865 tsync_start_sibling(&self->sibling[1]);
2882 ASSERT_EQ(ret, self->sibling[0].system_tid) {
2883 TH_LOG("Did not fail on diverged sibling.");
2886 if (ret == self->sibling[0].system_tid)
2894 self->sibling[!sib].num_waits += 1;
2901 PTHREAD_JOIN(self->sibling[sib].tid, &status);
2904 while (!kill(self->sibling[sib].system_tid, 0))
2906 /* Switch to the remaining sibling */
2912 TH_LOG("Expected the remaining sibling to sync");
2917 /* If remaining sibling didn't have a chance to wake up during
2920 if (self->sibling[sib].num_waits > 1)
2921 self->sibling[sib].num_waits = 1;
2926 PTHREAD_JOIN(self->sibling[sib].tid, &status);
2929 while (!kill(self->sibling[sib].system_tid, 0))
3623 * Check that a pid in a sibling (i.e. unrelated) namespace shows up as 0, i.e.
3659 /* Create the sibling ns, and sibling in it. */