0

当我尝试在我的应用程序中创建多个 nf_queue 时出现错误“资源暂时不可用”。我找不到有关此错误的任何文档。

我正在尝试使用 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