
On Mon, Jan 31, 2011 at 2:28 PM, Ertugrul Soeylemez
Michael Snoyman
wrote: On Mon, Jan 31, 2011 at 1:09 PM, Ertugrul Soeylemez
wrote: Hello everybody,
how well do WAI, Yesod and the 'persistent' package play with concurrency? For example, I'd like to write a program, which concurrently provides two related sites as well as a few background workers, which do something with the database. My idea would look something like this:
main :: IO () main = withMyAppPool $ \pool -> do forkIO $ worker1 ... -- background worker forkIO $ worker2 ... -- background worker forkIO $ worker3 ... -- background worker forkIO $ toWaiApp ... -- site 1 forkIO $ toWaiApp ... -- site 2
Will I run into problems with this?
There should not be any issues, just make sure you compile with -threaded. The persistent database connection pool should work just fine for this. If you find any issues, please let me know, but I have not had trouble in the past.
Thank you for your quick reply. How are my chances to get patches to Yesod incorporated into the mainstream code?
If it's a clean patch and does not break backwards compatibility: very high. If it's a clean patch that *does* break backwards compatibility: still good, but you'll have to wait till a major release. For not-so-clean patches, I suppose it depends on how dirty we're talking ;). Michael