maoe / lifted-async

Run lifted IO operations asynchronously and wait for their results
http://hackage.haskell.org/package/lifted-async
BSD 3-Clause "New" or "Revised" License
29 stars 13 forks source link

In .Safe module, use async's concurrently, race, and race_ #20

Closed snoyberg closed 8 years ago

snoyberg commented 8 years ago

The upstream versions of the functions are more efficient, being implemented via MVars and not leveraging the full Async machinery. In addition to getting a performance boost from this change, we also guarantee that, in the case of deadlocks, the exceptions generated from the .Safe module match those generated by Control.Concurrent.Async.

Note that this change does not make sense for the unsafe module in this package.

snoyberg commented 8 years ago

Forgot to ping @feuerbach

maoe commented 8 years ago

Made the fixes and some other optimizations: https://github.com/maoe/lifted-async/tree/snoyberg/develop

snoyberg commented 8 years ago

Very nice!

On Sun, May 22, 2016 at 5:44 AM, Mitsutoshi Aoe notifications@github.com wrote:

Made the fixes and some other optimizations: https://github.com/maoe/lifted-async/tree/snoyberg/develop

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/maoe/lifted-async/pull/20#issuecomment-220811251

maoe commented 8 years ago

Thanks for the contribution! I merged this commit into develop. GitHub doesn't seem to think this PR has been merged for some reason, so I'm closing this manually. I'll release a new version on Hackage shortly.