A couple of days ago I had to investigate a problem where my application was showing abnormally high CPU usage when it was (apparently) in idle state. I tracked the problem down to a loop which was meant to block on a `recvfrom` call while the socket had been set to `O_NONBLOCK`-ing resulting in a spin lock. There were two ways of solving the problem: set the socket to blocking or poll for available data on the socket using `poll` or `select`. I chose the former as it was simpler. But I am wondering why any one would create a non-blocking socket and then poll on it separately. Doesn't a blocking socket do the same? What are the uses cases where one would use a non-blocking socket and poll combination? Are there any advantages to it in general cases?
以上就是Non-blocking socket with poll的详细内容，更多请关注web前端其它相关文章！