開發平台(Platform): CentOS 7
編譯器: GCC std=c++11
額外使用到的函數庫(Library Used):
sys/socket.h
poll.h
問題(Question):
很奇怪的狀況,一段程式碼中,會先send(),成功後會poll()來等
poll成功的話就recv()
很基本的使用,但只要我在send之前簡單加上一行:
std::cout << "a" << std::endl;
(printf也一樣)
就有可能「機率性」的,server就收不到send,也可說就是send不出去
但如果是在send之後,不管加上幾行cout,都是正常
在想是不是底層的i/o有bug? 另外這是multi-thread的程式
這段程式是運行在子thread,但也看不出來cout跟multi-thread有甚麼關係?
請問有人遇過這種狀況嗎?
或認為可能的問題是出在哪嗎?