[commit: ghc] master: Note STM's vulnerability to non-allocating loops (9aa9458)
git at git.haskell.org
git at git.haskell.org
Wed Nov 25 23:32:26 UTC 2015
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/9aa94586fde73e818e32e5cc0e6420f6ed36a80b/ghc
>---------------------------------------------------------------
commit 9aa94586fde73e818e32e5cc0e6420f6ed36a80b
Author: Ben Gamari <bgamari.foss at gmail.com>
Date: Thu Nov 26 00:24:42 2015 +0100
Note STM's vulnerability to non-allocating loops
Test Plan: Read it
Reviewers: austin, fryguybob
Reviewed By: austin
Subscribers: thomie, fryguybob
Differential Revision: https://phabricator.haskell.org/D1523
GHC Trac Issues: #10639, #367
>---------------------------------------------------------------
9aa94586fde73e818e32e5cc0e6420f6ed36a80b
docs/users_guide/bugs.rst | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/docs/users_guide/bugs.rst b/docs/users_guide/bugs.rst
index 944925a..55551ea 100644
--- a/docs/users_guide/bugs.rst
+++ b/docs/users_guide/bugs.rst
@@ -372,12 +372,14 @@ Bugs in GHC
- GHC's runtime system implements cooperative multitasking, with
context switching potentially occurring only when a program
allocates. This means that programs that do not allocate may never
- context switch. See :ghc-ticket:`367` for further discussion.
+ context switch. This is especially true of programs using STM, which
+ may deadlock after observing inconsistent state. See :ghc-ticket:`367`
+ for further discussion.
If you are hit by this, you may want to compile the affected module
- with ``-fno-omit-yields``. This flag ensures that yield points are
- inserted at every function entrypoint (at the expense of a bit of
- performance).
+ with ``-fno-omit-yields`` (see :ref:`options-f`). This flag ensures that
+ yield points are inserted at every function entrypoint (at the expense of a
+ bit of performance).
- GHC can warn about non-exhaustive or overlapping patterns (see
:ref:`options-sanity`), and usually does so correctly. But not
More information about the ghc-commits
mailing list