#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
static int counter = 0;
void *thread_routine(void *arg)
{
printf("enter thread routine!\n");
for(counter = 0; ; counter++)
{
if((counter % 1000) == 0)
{
printf("testcancel\n");
pthread_testcancel();
printf("111111testcancel\n");
}
}
}
int main(int argc, char *argv[])
{
pthread_t thread;
void *result;
int status;
status = pthread_create(&thread, NULL, thread_routine, NULL);
printf("calling pthread_cancel\n");
status = pthread_cancel(thread);
printf("calling pthread_join\n");
status = pthread_join(thread, &result);
if(result == PTHREAD_CANCELED)
{
printf("Thread canceled at %d\n", counter);
}
sleep(1);
return 0;
}#include <pthread.h>
#include <stdio.h>
#in