Я пытаюсь найти способ передать пользовательский указатель (void *) из одного потока в другой, используя pthread_kill ().
Сценарий таков: несколько пользовательских асинхронных сигналов тревоги вызываются из одного потока (для некоторых операций блокировки, таких как чтение, прослушивание и т. Д.), И я хочу иметь возможность в обработчике различать сигналы времени ожидания, полученные на основе пользовательских приписывать.
Я посмотрел в обработчик
void handler(int, siginfo_t*, void*)
использовался вместе с SA_SIGINFO
и нашел struct sigval
, но я не смог найти способ передать некоторые данные с его помощью.
Полагаю, что одним из способов было бы
int sigqueue(pid_t pid, int sig, const union sigval value);
, но я работаю на OSX и он не реализован (https://www.gnu.org/software/gnulib/manual/html_node/sigqueue.html).
Спасибо, если вы можете предложить мне идею относительно этой проблемы.