POSIX, передать данные приложения между pthread_t - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь найти способ передать пользовательский указатель (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).

Спасибо, если вы можете предложить мне идею относительно этой проблемы.

...