Blocking a task indefinitely in the RTS

Phyx lonetiger at gmail.com
Tue Jan 8 08:55:51 UTC 2019


> Oh, I see :(  I guess it's not that easy of a fix then.  Perhaps the RTS
could use a new intrinsic for blocking on foreign state

Yeah, that's what I was/am currently working on, "IOPort" has much of the
same property of MVar but doesn't have this deadlock guarantee and only
supports a single put/take at a time.
But debugging CMM is... not fun :( so I was wondering if I was just missing
something with the existing mechanisms.


On Tue, Jan 8, 2019 at 8:23 AM Phil Ruffwind <rf at rufflewind.com> wrote:

> > I did try removing this check to see, but it really didn't like that. It
> > caused GC to be triggered over and over again as the RTS tried
> desperately
> > to find something to do, doesn't seem to consider "do nothing" as a valid
> > state.
>
> Oh, I see :(  I guess it's not that easy of a fix then.  Perhaps the RTS
> could use a new intrinsic for blocking on foreign state.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20190108/7356669c/attachment.html>


More information about the ghc-devs mailing list