Probiers mal damit.
Code:
#include <stdio.h>
#include <pthread.h>
#include <assert.h>
int bla;
void *func(void *arg) {
printf("Thread started\nBye\n");
bla = 0;
while(1)
pthread_testcancel();
return &bla;
}
int main(void) {
pthread_t id;
void *ret;
assert(sizeof(void *) == sizeof(int));
pthread_create(&id, 0, func, 0);
printf("PTHREAD_CANCELED=%d\n", (int)PTHREAD_CANCELED);
printf("Cancel\n");
pthread_cancel(id);
printf("Join\n");
pthread_join(id, &ret);
printf("%p\t%d\n", ret, ret == PTHREAD_CANCELED);
printf("%d\n", (int)ret);
return 0;
}
Gruß botty
Edit: assert() ergänzt.
Lesezeichen