           +------------------------+
           | Initialze loop time    |
           +------------------------+
           | Run due timers         |
           +------------------------+
                       |
                       v
                       __
   _____              /  \
  /     \            /    \
 /       \  No      / Loop \
 | end    |<-------| alive? |<----------+
 \       /          \      /            |
  \     /            \    /             |
   -----              \__/              |
                       |                |
                       | Yes            |
                       v                |
           +------------------------+   |
           | Call pending callbacks |   |
           +------------------------+   |
           | Run idle handles       |   |
           +------------------------+   |
           | Run prepare handles    |   |
           +------------------------+   |
           | Poll for I/O           |   |
           +------------------------+   |
           | Run check handles      |   |
           +------------------------+   |
           | Call close callbacks   |   |
           +------------------------+   |
           | Update loop time       |   |
           +------------------------+   |
           | Run due timers         |---+
           +------------------------+
