1
我遇到了一個問題,其中FD_SET
正在崩潰我的程序。我正在運行提升Boost ASIO sample HTTP Server的示例代碼。在請求處理程序中,我把第三方的API最終做出以下電話:FD_SET導致seg故障
fd_set fds;
FD_ZERO(&fds);
FD_SET(sockfd, &fds);
我的程序似乎是在FD_SET
崩潰。是否有從不同線程調用FD_SET
會導致段錯誤的情況?我不確定FD_SET
是如何工作的,我的直覺就是我在已經使用的fd上打電話FD_SET
。這會導致問題嗎?
sockfd
是一個類成員,它在每次請求進入時創建,所以我不應該在線程之間共享一個sockfd
變量。
你是什麼意思「似乎」?你不能使用調試器來確認嗎? – 2013-12-16 18:41:30
你是否檢查過'sockfd'是肯定的,並且少於'FD_SETSIZE'? –
它不會每一次都崩潰,只有當我的服務器運行在1000請求/秒左右時纔會崩潰。我所擁有的只是一個回溯,這並沒有給我準確的界限。當我註釋掉代碼+代碼後,程序將運行正常。一旦那條線在那裏,程序崩潰。 – Eumcoz