|Keep It Simple, Stupid|
Re^9: Unexpected Timing spikes using Time::HiResby BrowserUk (Pope)
|on Jan 22, 2010 at 01:51 UTC||Need Help??|
is there any way to read from a non-blocking socket without sleeping?
Yes. (Kinda:). See select or easier, IO::Select::can_read([TIMEOUT]). can_read() will block until there is some data available to be read, or the timeout elapses (if you suppy one). In reality, it is just doing the sleep for you.
As for timing your ping tool. I think you are being way optimistic if you are expecting to detect server errors within less than 100th of a second. That's effectively what you are saying when you are concerned about a 15ms delay.
Even on a modern Gb/s LANs taking action on the basis of a delay of much less than 1/10th of a second would be wildly premature.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.