[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