0

アプリケーションで複数の nf_queues を作成しようとすると、「リソースが一時的に利用できません」というエラーが発生しました。このエラーに関するドキュメントは見つかりませんでした。

NFQUEUE を使用してマルチスレッド アプリケーションを実装しようとしています。ライブラリを開き、メイン スレッドで AF_INET にバインドし、複数の NFQUEUE を作成しようとしました。5 つのキューを正常に作成しており、次の nfq_create_queue は「リソースが一時的に利用できません」を返します。

sleep(1); も試しました。nfq_create_queue() を呼び出す間に同じエラーが発生しました。

グローバル変数:

struct nfq_handle *h;
int fd;

メインスレッド:

h = nfq_open();
nfq_unbind_pf(h, AF_INET)
nfq_bind_pf(h, AF_INET)
qh = nfq_create_queue(h,  NFQ_NUMBER_START_IPv4 + self_index, &cb_ip4, NULL);
nfq_set_mode(qh, NFQNL_COPY_PACKET, 0xffff);
nfq_set_queue_maxlen(qh, NFQ_LENGTH);
fd = nfq_fd(h);
nfnl_rcvbufsiz(nfq_nfnlh(h), NFQLENGTH * BUFSIZE);

ワーカー スレッド:

qh = nfq_create_queue(h,  NFQ_NUMBER_START_IPv4 + self_index, &cb_ip4, NULL);
nfq_set_mode(qh, NFQNL_COPY_PACKET, 0xffff)
nfq_set_queue_maxlen(qh, NFQ_LENGTH);
4

0 に答える 0