Функция, обрабатывающая поток.
void *
servis_output (void * arg)
{
pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL);
pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, NULL);
int sock_output = ((struct itemDT *)arg)->sock.output;
char buf[BUF_SIZE];
int n;
while (1)
{
pthread_testcancel();
n = read (0,buf,BUF_SIZE);
write(sock_output,buf,n);
}
return NULL;
}
pthread_cancel (pth) не может завершить поток. Не подскажите почему, либо другой способ как это сделать?