Process pending thread events when unblocking them.
authorTaylor R Campbell <campbell@mumble.net>
Wed, 29 May 2019 04:10:57 +0000 (04:10 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Wed, 29 May 2019 05:01:08 +0000 (05:01 +0000)
commit170d1d9acd237f4e026227e9aa8b767322b05410
tree8954631dac477cba25669b80bc4a2fa9a38f8ba8
parente17d95fadd66d663ec13f2370d5afd785c24543e
Process pending thread events when unblocking them.

Partly fixes bug where profiler never got a chance to run when the
program was doing most of its work in short routines that block and
unblock thread events, like opening and closing files.

Only partly, because it seems something else unblocks thread events
without processing them -- until we do another block/unblock cycle as
in channel-close.  Verified that very little time is actually spent
in channel-close; haven't yet tracked down who the culprit is.

(cherry picked from commit b0b11d54bc0d0cf639ca7205fc8e3396e4fd6807)
src/runtime/thread.scm