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

int x=0;

void *f(void *x){
    int *valor= (int *)x;

    for (int i=0; i<1000000; i++)
	{
	   *valor = *valor + 1;
	} 

    printf("Hebra hija: incremento de x finalizado. \n");
	pthread_exit(NULL); 
}

int main(){
    pthread_t tid1, tid2;

    printf("Hilo principal: valor de x=%d", x);

    if (pthread_create(&tid1, NULL, (void*) f, (void *) &x)){
        fprintf(stderr, "Error creating thread\n");
	    exit(EXIT_FAILURE); 
    }

    if (pthread_create(&tid2, NULL, (void*) f, (void *) &x)){
        fprintf(stderr, "Error creating thread\n");
	    exit(EXIT_FAILURE); 
    }

	if( pthread_join(tid1, NULL) )
	{
	  fprintf(stderr, "Error joining thread\n");
	  exit(EXIT_FAILURE);  
	}

	if( pthread_join(tid2, NULL) )
	{
	  fprintf(stderr, "Error joining thread\n");
	  exit(EXIT_FAILURE);  
	}

	printf("Hebra principal o main(): valor de x = %d\n",x);

}