STM: Be more optimistic when validating in-flight transactions.
* Don't lock tvars when performing non-committal validation. * If we encounter a locked tvar don't consider it a failure. This means in-flight validation will only fail if committing at the moment of validation is *guaranteed* to fail. This prevents in-flight validation from failing spuriously if it happens in parallel on multiple threads or parallel to thread comitting.
Showing
- rts/Exception.cmm 1 addition, 1 deletionrts/Exception.cmm
- rts/STM.c 225 additions, 13 deletionsrts/STM.c
- rts/STM.h 16 additions, 9 deletionsrts/STM.h
- rts/Schedule.c 1 addition, 1 deletionrts/Schedule.c
- rts/include/stg/SMP.h 4 additions, 3 deletionsrts/include/stg/SMP.h
- testsuite/tests/rts/T24142.hs 63 additions, 0 deletionstestsuite/tests/rts/T24142.hs
- testsuite/tests/rts/T24142.stdout 39 additions, 0 deletionstestsuite/tests/rts/T24142.stdout
- testsuite/tests/rts/all.T 2 additions, 0 deletionstestsuite/tests/rts/all.T
Loading
Please register or sign in to comment