[Haskell-cafe] Yesod and concurrency

Michael Snoyman michael at snoyman.com
Mon Jan 31 13:36:49 CET 2011


On Mon, Jan 31, 2011 at 2:28 PM, Ertugrul Soeylemez <es at ertes.de> wrote:
> Michael Snoyman <michael at snoyman.com> wrote:
>
>> On Mon, Jan 31, 2011 at 1:09 PM, Ertugrul Soeylemez <es at ertes.de> 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



More information about the Haskell-Cafe mailing list