Fix stackoverflow in the newArray methods of a TArray
authorBas van Dijk <v.dijk.bas@gmail.com>
Wed, 23 Mar 2011 19:34:03 +0000 (19:34 +0000)
committerBas van Dijk <v.dijk.bas@gmail.com>
Wed, 23 Mar 2011 19:34:03 +0000 (19:34 +0000)
commit27b500999dceb6a921be16eb9dc37f02e996de43
tree079bb1da40c8f9c49ebf4dbf14fa1c3e4b936846
parent8326f7201fcc5ce7a8dc105a1179c3d2727409d6
Fix stackoverflow in the newArray methods of a TArray
The following caused a stackoverflow:
atomically $ (newArray_ (0,1000000) :: STM (TArray Int Int))
This happened because newArray_ was defined using replicateM
which is defined using sequence which uses a right fold
which pushes the result of the monadic computation on the stack
then continues with the rest until the stack overflows.
Control/Concurrent/STM/TArray.hs