CSCI.4210 Operating Systems
Fall, 2004
Exercise 6.1, Threads

If a thread wants to return more than one value, you can create a structure with all of the return values, and return a pointer to an instance of this structure. Here is some code. Fill in the two sections
/* On some systems you will need to link to the pthread library by
   appending -l pthread to the compile line */

#include 
#include 
#include 

struct thedata {
  int x;
  char s[32];
};
 
void *threadroutine(void *arg)
{
  struct thedata *t = (struct thedata *)malloc(sizeof(struct thedata));
  t->x = 17;
  strcpy(t->s,"Hello world!");
  pthread_exit(t);
}

int main()
{
  struct thedata *q;
  pthread_t n;
  int retval;

  retval = pthread_create(&n,NULL,threadroutine,NULL);
  if (retval < 0) {
    printf("error, could not create thread\n");
    exit(0);
  }
  /***************************************************
       write code here to get the return value from the
       thread and display the results.  Make sure that
       your code does routine error checking
   *****************************************************/
}

RCS email: @rpi.edu