1133066Sdfr/* $FreeBSD: releng/10.2/tools/regression/tls/ttls2/ttls2.c 133066 2004-08-03 09:04:01Z dfr $ */
2133066Sdfr
3133066Sdfr#include <stdio.h>
4133066Sdfr#include <pthread.h>
5133066Sdfr
6133066Sdfrint __thread i;
7133066Sdfr
8133066Sdfrvoid *
9133066Sdfrfoo1(void *arg)
10133066Sdfr{
11133066Sdfr	printf("thread %p, &i = %p\n", pthread_self(), &i);
12133066Sdfr	for (i = 0; i < 10; i++) {
13133066Sdfr		printf("thread %p, i = %d\n", pthread_self(), i);
14133066Sdfr		sleep(1);
15133066Sdfr	}
16133066Sdfr}
17133066Sdfr
18133066Sdfrvoid *
19133066Sdfrfoo2(void *arg)
20133066Sdfr{
21133066Sdfr	printf("thread %p, &i = %p\n", pthread_self(), &i);
22133066Sdfr	for (i = 10; i > 0; i--) {
23133066Sdfr		printf("thread %p, i = %d\n", pthread_self(), i);
24133066Sdfr		sleep(1);
25133066Sdfr	}
26133066Sdfr}
27133066Sdfr
28133066Sdfrint main(int argc, char** argv)
29133066Sdfr{
30133066Sdfr	pthread_t t1, t2;
31133066Sdfr
32133066Sdfr	pthread_create(&t1, 0, foo1, 0);
33133066Sdfr	pthread_create(&t2, 0, foo2, 0);
34133066Sdfr	pthread_join(t1, 0);
35133066Sdfr	pthread_join(t2, 0);
36133066Sdfr}
37