-
Notifications
You must be signed in to change notification settings - Fork 529
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ensure that ce3 MVar is in sync with ce2 #967
Comments
I could work on this. Not sure what the state of CE3 is at the moment, but I definitely have context on the issue. |
That would be amazing! You should just be able to checkout |
Thanks. I'll check it out. |
@djspiewak I have a question. Essentially, the |
@SystemFw Thanks for chiming in. I have looked at it. I guess my biggest problem right now is the Source here: http://hackage.haskell.org/package/base-4.14.0.0/docs/src/Control.Concurrent.MVar.html#modifyMVar |
In haskell interruption and errors are both represented by (different types of) exception, which is actually a source of pain. Also you can't port the haskell version directly, that's written with |
So it's ok if they are uninterruptible? |
The |
The way I understood your objections to the code that was merged in CE2, is that in case of two producers, a deadlock can occur because the Otherwise, I too, think that |
Well, if you think about it that's not strictly true: a deadlock can happen because of the semantics of MVar (which is partly why I don't like it, it's intrinsic) , and you might somehow mitigate the situation because of *Btw, interestingly enough deadlock detection in Haskell is not "interruption", strictly speaking, in the sense that it's not an async exception. So even if you |
Thanks for taking the time to explain @SystemFw. I appreciate it. |
Btw the intrinsic limitations of MVar are the same in ce2 and ce3, but in ce2 the workaround is heavyweight, since |
I wonder why this issue didn't close automatically. @djspiewak |
Not sure! Closing now. |
See #912 for some context.
The text was updated successfully, but these errors were encountered: