Nik*_*Kim 5 c++ multithreading fastcgi
我正在使用 libfcgi (fcgiapp) 库编写 FastCGI 应用程序。问题出在FCGX_Accept_r方法内部,该方法等待传入连接并阻塞线程。正如我所看到的,它没有任何超时,因此程序流无法继续执行,直到请求到达。
我尝试FCGI_FAIL_ACCEPT_ON_INTR在方法中设置标志FCGX_InitRequest以使接受函数中断,但没有成功。
设置 FCGI_FAIL_ACCEPT_ON_INTR 可防止 FCGX_Accept() 在中断后重新启动。
我也尝试过拨打电话FCGX_ShutdownPending,但它似乎拒绝新的传入连接,并且不会停止侦听下一个连接。
阻止库接受任何新请求。信号处理程序安全。
你能告诉我还能做什么来打破FCGX_Accept_r等待吗?
小智 1
作为解决方法,只需关闭套接字:
FCGX_Request request;
// ...
close(request.listen_sock);
Run Code Online (Sandbox Code Playgroud)