diff options
author | Andreas Klebinger <klebinger.andreas@gmx.at> | 2020-03-05 17:55:43 +0100 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2020-07-15 16:41:02 -0400 |
commit | 750ebaeec06d7ee118abfbb29142c12fb31730cc (patch) | |
tree | 880d05d448908fb5cced1d8f2d417982119d643e /rts/rts.cabal.in | |
parent | 6aefdf62b767b7828698c3ec5bf6a15e6e20eddb (diff) | |
download | haskell-750ebaeec06d7ee118abfbb29142c12fb31730cc.tar.gz |
winio: Clean up code surrounding IOPort primitives.
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.
Diffstat (limited to 'rts/rts.cabal.in')
-rw-r--r-- | rts/rts.cabal.in | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/rts/rts.cabal.in b/rts/rts.cabal.in index a16582a7f5..a890d3dc1d 100644 --- a/rts/rts.cabal.in +++ b/rts/rts.cabal.in @@ -227,6 +227,8 @@ library "-Wl,-u,_base_GHCziIOziException_cannotCompactFunction_closure" "-Wl,-u,_base_GHCziIOziException_cannotCompactPinned_closure" "-Wl,-u,_base_GHCziIOziException_cannotCompactMutable_closure" + "-Wl,-u,_base_GHCziIOPort_doubleReadException_closure" + "-Wl,-u,_base_ControlziExceptionziBase_absentSumFieldError_closure" "-Wl,-u,_base_ControlziExceptionziBase_nonTermination_closure" "-Wl,-u,_base_ControlziExceptionziBase_nestedAtomically_closure" "-Wl,-u,_base_GHCziEventziThread_blockedOnBadFD_closure" @@ -307,6 +309,8 @@ library "-Wl,-u,base_GHCziIOziException_cannotCompactFunction_closure" "-Wl,-u,base_GHCziIOziException_cannotCompactPinned_closure" "-Wl,-u,base_GHCziIOziException_cannotCompactMutable_closure" + "-Wl,-u,base_GHCziIOPort_doubleReadException_closure" + "-Wl,-u,base_ControlziExceptionziBase_absentSumFieldError_closure" "-Wl,-u,base_ControlziExceptionziBase_nonTermination_closure" "-Wl,-u,base_ControlziExceptionziBase_nestedAtomically_closure" "-Wl,-u,base_GHCziEventziThread_blockedOnBadFD_closure" |