[GHC] #8035: STM transaction left open if there is an orElse on the path between throwSTM and catchSTM

GHC ghc-devs at haskell.org
Fri Jul 5 18:03:38 CEST 2013


#8035: STM transaction left open if there is an orElse on the path between
throwSTM and catchSTM
---------------------------------+------------------------------------------
    Reporter:  errge             |       Owner:                  
        Type:  bug               |      Status:  new             
    Priority:  normal            |   Milestone:                  
   Component:  Runtime System    |     Version:  7.7             
    Keywords:  stm rts           |          Os:  Unknown/Multiple
Architecture:  Unknown/Multiple  |     Failure:  Runtime crash   
  Difficulty:  Unknown           |    Testcase:                  
   Blockedby:                    |    Blocking:                  
     Related:                    |  
---------------------------------+------------------------------------------

Comment(by errge):

 Well, actually I was actually recognizing the missing transaction close by
 a lot of fprintf(stderr).  Then copied the code for aborting a transaction
 from findRetryFrameHelper, which is just below in the same file.

 But your reasoning sounds easier :)

 Anyway, I uploaded a new patch, that contains no fallthrough.

 On the other hand, this means that now we'll have three places for very
 similar code.  Should we try to write a helper function somewhere?  Or if
 there are too many variables to pass, then a helper macro maybe?

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/8035#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the ghc-tickets mailing list