[问题] -解决- cout影响socket的send()??

楼主: hn12404988 (Willy)   2016-10-12 17:12:51
开发平台(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有什么关系?
请问有人遇过这种状况吗?
或认为可能的问题是出在哪吗?
作者: firejox (Tangent)   2016-10-12 17:25:00
机率性..应该是同步的问题
作者: Schottky (顺风相送)   2016-10-12 17:42:00
咦,跑 daemon 没有让它自行 detach 吗?有时候这类问题真的超难抓...
楼主: hn12404988 (Willy)   2016-10-12 17:49:00
哈,说来蠢,子thread设计执行完就回收,我刚在测试如果使用者忘记回收,会发生什么事,但一时间沉迷于cout怎么会send这个状况

Links booklink

Contact Us: admin [ a t ] ucptt.com