http://www.perlmonks.org?node_id=1056145


in reply to Re: How can I force thread switching?
in thread How can I force thread switching?

I have already explored Time::HiRes since usleep() is defined in this package.

I also attempted to wait for 0 unit of time (second or microsecond) to no avail. The null delay is probably detected somewhere and optimised out.

As stated in the manual, yield() is a no-op on most systems.

Replies are listed 'Best First'.
Re^3: How can I force thread switching? ( sleep 33 milliseconds)
by Anonymous Monk on Sep 28, 2013 at 23:18 UTC

    I also attempted to wait for 0 unit of time (second or microsecond) to no avail. The null delay is probably detected somewhere and optimised out.

    BrowserUk says yield is a mistake (like sleep 0), so sleep more, like 1/2 (or less) of the minimum time period that you believe it will take, like 33 milliseconds -- seems to hold true on win32, good rule of thumb :)