It just forces run to return, you can start the loop again later. It effectively does the same thing as before, but it's more efficient because the while self._running loop is done by libuv internally. I also added the failsafe timer to avoid busylooping.