Skip to content
Snippets Groups Projects
Forked from Glasgow Haskell Compiler / GHC
6276 commits behind, 1 commit ahead of the upstream repository.
  • Andreas Klebinger's avatar
    750ebaee
    winio: Clean up code surrounding IOPort primitives. · 750ebaee
    Andreas Klebinger authored
    According to phyx these should only be read and written once per
    object. Not neccesarily in that order.
    
    To strengthen that guarantee the primitives will now throw an
    exception if we violate this invariant.
    
    As a consequence we can eliminate some code from their primops.
    In particular code dealing with multiple queued readers/writers
    now simply checks the invariant and throws an exception if it
    was violated. That is in contrast to mvars which will do things
    like wake up all readers, queue multi writers etc.
    750ebaee
    History
    winio: Clean up code surrounding IOPort primitives.
    Andreas Klebinger authored
    According to phyx these should only be read and written once per
    object. Not neccesarily in that order.
    
    To strengthen that guarantee the primitives will now throw an
    exception if we violate this invariant.
    
    As a consequence we can eliminate some code from their primops.
    In particular code dealing with multiple queued readers/writers
    now simply checks the invariant and throws an exception if it
    was violated. That is in contrast to mvars which will do things
    like wake up all readers, queue multi writers etc.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.