1

マルチキャスト AF_UNIX データグラム ソケットのようなもの (同様に低レベルのもの) が必要です。

このためにLinuxカーネルにすでに実装されているものはありますか? ユーザー空間デーモンではなく、カーネルにパブリッシュ/サブスクライブロジックを保持したい。1 つの syscall - 公開 - N の目覚めたスレッド - 彼らは通知しました。

/* in publisher: */
send(fd, "first\n", 6, TO_ALL_THREADS_PLEASE);
send(fd, "second\n", 7, TO_ALL_THREADS_PLEASE);

/* in the first subscriber thread: */
sleep(1);
recv(fd, buf, 100, 0); /* receive "first" */
recv(fd, buf, 100, 0); /* receive "second" */

/* meanwhile in the second subscriber thread: */
recv(fd, buf, 100, 0); /* receive "first" */
sleep(1);
recv(fd, buf, 100, 0); /* receive "second" */
4

0 に答える 0