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

void saying_pthread_name( void *ptr );
int value=1;

int  main(void)
{
  pthread_t wthread, bthread, rthread;
  char *wname = "white";
  char *bname = "black";
  char *rname = "red";
  pthread_attr_t *pthread_attr_default = NULL;

  pthread_create( &wthread, pthread_attr_default,
		  (void*)&saying_pthread_name, (void*) wname);

  pthread_create(&bthread, pthread_attr_default,
		 (void*)&saying_pthread_name, (void*) bname);

  pthread_create(&rthread, pthread_attr_default,
		 (void*)&saying_pthread_name, (void*) rname);

  pthread_join(wthread,NULL);
  pthread_join(rthread,NULL);
  pthread_join(bthread,NULL);
  exit(0);
}

void saying_pthread_name( void *ptr )
{
  char *meldung;
  meldung = (char *) ptr;
  printf("I am a %s pthread and the value is %d \n", meldung, value);
  value=value+1;
}
