replace EWOULDBLOCK with EAGAIN

add extra nullptr check in the event loop to handle the case when the finish ptr is set to NULL after it was already scheduled

(0) -300 -100 -30 -10 -2 +2 +10 tip

mercurial