#include <stdio.h>
#include <signal.h>
#include <pthread.h>

int x;

#define MAX 10


int thread_one (volatile int *px)
{
	int i;

	for (i = 1; i <= MAX; i++) {
		printf("thread_one running\n");
		*px = *px + 1;
		raise(SIGSEGV);
	}
}

int thread_two (volatile int *px)
{
	int i;

	for (i = 1; i <= MAX; i++) {
		printf("thread_two running\n");
		*px = *px + 1;
	}
}

int main(int argc, char **argv)
{
	pthread_t t1, t2;

	pthread_create (&t1, NULL, (void *)thread_one, (void *)&x);
	pthread_create (&t1, NULL, (void *)thread_two, (void *)&x);

	//pthread_cond_broadcast (&synch_cv);

	pthread_join (t1, NULL);
	pthread_join (t2, NULL);

	printf("value of x = %d\n", x);
	exit(0);
}
