well-typed / grapesy

Native Haskell gRPC client and server based on `http2`
Other
38 stars 4 forks source link

Deadlock freedom and exception safety #30

Closed edsko closed 1 year ago

edsko commented 1 year ago

This makes a ton of small adjustments that together should mean that the grapesy infrastructure will not deadlock, even in edge cases.

This also significantly increases the power of the test suite (which was instrumental for catching many of these problems).

However, part of the test suite is still disabled (we don't yet test what happens when servers or clients throw domain specific exceptions). If I enable that, tests fail, but that is at least in part due to limitations of the test suite; whether or not there are actual bugs is not yet known.