sa_sigaction ハンドラーへのコールバックに追加情報が必要でしたが、それは不可能のようです。
そこで、代替案を教えていただけないでしょうか。基本要件:
- 関数 A は、構造体へのポインターを使用してシグナル/イベントを発生させます
- ハンドラー関数はイベントに取り組みます。
- ハンドラー関数はイベントでのみ呼び出され、 select() のようにイベントを待機するループは望ましくありません。
sa_sigaction ハンドラーへのコールバックに追加情報が必要でしたが、それは不可能のようです。
そこで、代替案を教えていただけないでしょうか。基本要件:
このような ?
int sigqueue(pid_t to_pid, int signr, const union sigval pointer_or_int);
そして反対側:
int signr=int sigwaitinfo(const sigset_t *set, siginfo_t *info);
警告!: 異なるアドレス/プロセス空間間では参照渡しが機能しない可能性があります (私はまだこれを自分でテストしていません)。そのため、最初に同じプロセスのスレッド間でこれをテストしてください....
幸運を :-)