6

poll私のphpコードのlibcurlは、呼び出しで無期限にスタックしているようです。プロセスIDにstraceを実行したとき、

[user@server ~]$ sudo strace -p 19559
Process 19559 attached - interrupt to quit
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout) 
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)

これは無期限に続きます。fd7は/proc/ 19559/fdに次のように表示されます。

lrwx------ 1 root root 64 Sep 19 19:44 7 -> socket:[335178801]

なぜこれが起こっているのか誰かに教えてもらえますか?タイムアウト時にlibcurlを終了させるにはどうすればよいですか

4

1 に答える 1

6

curl_setoptオプションCURLOPT_CONNECTTIMEOUTをゼロ以外の値に設定すると、curlがタイムアウト時に失敗します。

于 2012-09-26T06:58:54.513 に答える