#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
void *fa(void *x) {
printf("fa 1 \n");
sleep(3);
printf("fa 2 \n");
sleep(3);
printf("fa 3 \n");
}
void *fb(void *x){
sleep(5);
exit(*(int *)x); <---1
printf("fb 1 \n");
}
void *fc(void *x){
sleep(4);
pthread_cancel(*(int *)x);
printf("fc 1 \n");
}
int main(){
pthread_t a,b,c;
pthread_create(&a, NULL,fa,NULL);
pthread_create(&b, NULL, fb, &a);
pthread_create(&c, NULL, fc, &b);
sleep(10);
return 0;
}
Co robi “exit(*(int *)x);” zamyka cały program z wszystkimi wątkami czy sam wątek “&a” w tym kontekście który jest przekazany jako parametr?