У меня есть поток в настоящее время остановлен pselectpthread_kill возвращает номер ошибки 11
(void)pselect(1, NULL, NULL, NULL, NULL, &select_mask);
sigmask инициализируется таким образом.
(void)sigfillset(&select_mask);
(void)sigdelset(&select_mask, 37);
отладки в GDB
4 Thread 0x7ffff7fce710 (LWP 28287) 0x00007ffff6a24dab in pselect() from ./libc.so.6
Когда я пытаюсь послать сигнал номер 37 в этой теме, чтобы получить его из pselect. возвращает 11.
(gdb) call pthread_kill(0x7ffff7fce710,37)
$26 = 11
пытается другие сигналы будут возвращать 0, так как другие сигналы должны быть заблокированы.
(gdb) call pthread_kill(0x7ffff7fce710,3)
$27 = 0
Что такое 11 означает здесь? EAGAIN? И как избавиться от него и закончить этот pselect?
Я использую 64-разрядную систему suselinux 11.
У вас есть googled для чего-то вроде posix или pthreads коды ошибок? я бы поспорил, что есть что-то найти в tehir docs – dhein
@Zaibis Я сделал это, но не нашел подсказки. Исходная страница Posix man содержит только 2 описания ошибок, ESRCH и EINVAL. И это не мое дело. – oyss