[commit: ghc] ghc-lwc2: If a thread running as a part of the user-level scheduler happens to block on a foreign call, and also happens to be bound, then we no longer resume the scheduler of such threads since the IOManager seems to not like it. See suspendThread, resumeThread, and shouldResumeBlockedOnForeignCall in rts/Schedule.c. (04aa658)
Sivaramakrishnan Krishnamoorthy Chandrasekaran
t-sichan at microsoft.com
Tue Apr 30 02:16:16 CEST 2013
Repository : http://darcs.haskell.org/ghc.git/
On branch : ghc-lwc2
https://github.com/ghc/ghc/commit/04aa65861d28742a5ed3fba677dad09ca0d3018b
>---------------------------------------------------------------
commit 04aa65861d28742a5ed3fba677dad09ca0d3018b
Author: KC Sivaramakrishnan <chandras at cs.purdue.edu>
Date: Sat Apr 27 21:27:24 2013 -0400
If a thread running as a part of the user-level scheduler happens to
block on a foreign call, and also happens to be bound, then we no longer
resume the scheduler of such threads since the IOManager seems to not
like it. See suspendThread, resumeThread, and
shouldResumeBlockedOnForeignCall in rts/Schedule.c.
This is an unsatisfactory solution since a bound thread performing a
blocking foreign call blocks the scheduler! FIX ME!
libraries/base/LwConc/Substrate.hs | 13 +++++------
rts/Schedule.c | 42 ++++++++++++++++++++++-------------
rts/Upcalls.c | 13 ++++++-----
tests/Benchmarks/Sieve/Makefile | 2 +-
tests/Benchmarks/Sieve/sieve-TMVar.hs | 4 +++-
5 files changed, 42 insertions(+), 32 deletions(-)
Diff suppressed because of size. To see it, use:
git show 04aa65861d28742a5ed3fba677dad09ca0d3018b
More information about the ghc-commits
mailing list