Допустим, у меня есть тема, похожая на эту:
void my_thread(char *device_name) {
int fd = open(device_name, O_RDONLY);
struct input_event ev;
while(1) {
read(fd, &ev, sizeof(struct input_event));
/* do something */
}
}
Как мне остановить такую тему?Одним из способов является использование pthread_cancel
, но я бы предпочел сделать это более изящно.Что-то вроде pthread_kill
возможно?В таком случае, однако, будет ли метод чтения разблокирован (как я полагаю, он должен) и как поток будет обрабатывать сигнал?Или это процесс, который должен с этим справиться?
Буду очень признателен за совет!