
#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